From 773127ce2933b5c378783cc26c5bd93628cbc3b6 Mon Sep 17 00:00:00 2001 From: ci-build-docs Date: Fri, 28 Jun 2024 20:01:15 +0000 Subject: [PATCH] [skip ci] updates --- mozilla_schema_generator/matcher.html | 2 +- mozilla_schema_generator/probes.html | 4 ++-- search.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mozilla_schema_generator/matcher.html b/mozilla_schema_generator/matcher.html index a5d52ca9..a86f5642 100644 --- a/mozilla_schema_generator/matcher.html +++ b/mozilla_schema_generator/matcher.html @@ -406,7 +406,7 @@

keywords = -{'not', 'contains', 'any', 'type', 'table_group'} +{'type', 'any', 'contains', 'not', 'table_group'}
diff --git a/mozilla_schema_generator/probes.html b/mozilla_schema_generator/probes.html index 463366e5..23d9d05b 100644 --- a/mozilla_schema_generator/probes.html +++ b/mozilla_schema_generator/probes.html @@ -854,7 +854,7 @@

child_processes = -{'socket', 'dynamic', 'content', 'gpu', 'extension'} +{'extension', 'content', 'gpu', 'dynamic', 'socket'}
@@ -867,7 +867,7 @@

processes_map = - {'all_childs': {'socket', 'dynamic', 'content', 'gpu', 'extension'}, 'all_children': {'socket', 'dynamic', 'content', 'gpu', 'extension'}, 'all': {'extension', 'socket', 'dynamic', 'content', 'main', 'gpu'}} + {'all_childs': {'extension', 'content', 'gpu', 'dynamic', 'socket'}, 'all_children': {'extension', 'content', 'gpu', 'dynamic', 'socket'}, 'all': {'content', 'gpu', 'extension', 'main', 'socket', 'dynamic'}}
diff --git a/search.js b/search.js index c88ff2ca..73e082c1 100644 --- a/search.js +++ b/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oGenerate schemas for mozilla-pipeline-schemas.

\n\n

\"CircleCI\"\n\"Latest

\n\n

Mozilla Schema Generator

\n\n

A library for generating full representations of Mozilla telemetry pings.

\n\n

See Mozilla Pipeline Schemas\nfor the more generic structure of pings. This library takes those generic structures and fills in\nall of the probes we expect to see in the appropriate places.

\n\n

Telemetry Integration

\n\n

There are two generic ping types we're targeting for this library:

\n\n
    \n
  1. The Common Ping Format\nis used for many legacy pings from Firefox Desktop ping, including the \"main\" ping
  2. \n
  3. The Glean Ping Format is the common structure being used for\nall newly instrumented products at Mozilla, including mobile browsers.
  4. \n
\n\n

This library takes the information for what should be in those pings from the Probe Info Service.

\n\n

Data Store Integration

\n\n

The primary use of the schemas is for integration with the\nSchema Transpiler.\nThe schemas that this repository generates can be transpiled into Avro and Bigquery. They define\nthe schema of the Avro and BigQuery tables that the BQ Sink\nwrites to.

\n\n

Validation

\n\n

When we validate pings against a schema in the data pipeline, we use the generic versions\nrather than the versions generated by this repository's machinery. While the schemas produced\nhere are guaranteed to be more correct since they include explicit definitions of every metric and probe,\nwe find in practice there are too many edge cases where a probe is sent with the incorrect type\nand we need to coerce it to the correct type when loading to BigQuery.\nWe also purposely represent some complex types as JSON strings in schemas, relying on the BQ loader\nto coerce objects to string.\nWe could still consider using the generated schemas for validation in the future, but\nadditional work would be required to ensure it does not lead to mass rejection of pings.

\n\n

Usage

\n\n

Main Ping

\n\n

Generate the Full Main Ping schema:

\n\n
mozilla-schema-generator generate-main-ping\n
\n\n

The out-dir parameter will be the namespace for the pings.

\n\n

To see a full list of options, run mozilla-schema-generator generate-main-ping --help.

\n\n

Glean

\n\n

Generate all Glean ping schemas - one for each application, for each ping\nthat application sends:

\n\n
mozilla-schema-generator generate-glean-pings\n
\n\n

Write schemas to a directory:

\n\n
mozilla-schema-generator generate-glean-pings --out-dir glean-ping\n
\n\n

To see a full list of options, run mozilla-schema-generator generate-glean-pings --help.

\n\n

Configuration Files

\n\n

Configuration files are by default found in /config. You can also specify your own when running the generator.

\n\n

Configuration files match certain parts of a ping to certain types of probes or metrics. The nesting\nof the config file matches the ping it is filling in. For example, Glean stores probe types under\nthe metrics key, so the nesting looks like this:

\n\n
{\n    \"metrics\": {\n        \"string\": {\n            <METRIC_ID>: {...}\n        }\n    }\n}\n
\n\n

While the generic schema doesn't include information about the specific <METRIC_ID>s being included,\nthe schema-generator does. To include the correct metrics that we would find in that section of the ping,\nwe would organize the config.yaml file like this:

\n\n
metrics:\n    string:\n        match:\n            type: string\n
\n\n

The match key indicates that we should fill-in this section of the ping schema with metrics,\nand the type: string makes sure we only put string metrics in there. You can do an exact\nmatch on any field available in the ping info from the probe-info-service,\nwhich also contains the Desktop probes.

\n\n

There are a few additional keywords allowable under any field:

\n\n
    \n
  • contains - e.g. process: contains: main, indicates that the process field is an array\nand it should only match those that include the entry main.
  • \n
  • not - e.g. send_in_pings: not: glean_ping_info, indicates that we should match\nany field for send_in_pings _except_ glean_ping_info.
  • \n
\n\n

table_group Key

\n\n

This specific field is for indicating which table group that section of the ping should be included in when\nsplitting the schema. Currently we do not split any pings. See the section on BigQuery\nLimitations and Splitting for more info.

\n\n

Allowing schema incompatible changes

\n\n

On every run of the schema generator, there is a check for incompatible changes\nbetween the previous revision and current generated revision. A schema\nincompatible change includes a removal of a schema or a column, or a change in\nthe type definition of a column.

\n\n

There are two methods to get around these restrictions. If you are actively\ndeveloping the schema generator and need to introduce a schema incompatible\nchange, set MPS_VALIDATE_BQ=false.

\n\n

If a schema incompatible change needs to be introduced in production (i.e.\ngenerated-schemas), then modify the incompatibility-allowlist at the root of\nthe repository. Add documents in the form of\n{namespace}.{doctype}.{docversion}. Globs are allowed. For example, add the\nfollowing line to allow remove schemas under the my_glean_app namespace:

\n\n
\n
my_glean_app.*\n
\n
\n\n

Once the commit has gone through successfully, this line should be removed from\nthe document.

\n\n

Development and Testing

\n\n

Install requirements:

\n\n
\n
make install-requirements\n
\n
\n\n

Ensure that the mozilla-pipeline-schemas submodule has been checked out:

\n\n
\n
git submodule init\ngit submodule update --remote\n
\n
\n\n

Run tests:

\n\n
\n
make test\n
\n
\n\n

Publish generated schemas to mozilla-generated-schemas/test-generated-schemas\nrun:

\n\n
\n
git fetch origin\n\ngit checkout <branch-to-test>\n\nexport MPS_SSH_KEY_BASE64=$(cat ~/.ssh/id_rsa | base64)\n\n# generate all schemas for current main\ngit checkout main && git pull make build && make run\n\n# generate all schemas with changes and compare with main\ngit checkout <branch-to-test> make build && make run\n
\n
\n"}, {"fullname": "mozilla_schema_generator.bhr_ping", "modulename": "mozilla_schema_generator.bhr_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.bhr_ping.BhrPing", "modulename": "mozilla_schema_generator.bhr_ping", "qualname": "BhrPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.common_ping.CommonPing"}, {"fullname": "mozilla_schema_generator.bhr_ping.BhrPing.__init__", "modulename": "mozilla_schema_generator.bhr_ping", "qualname": "BhrPing.__init__", "kind": "function", "doc": "

\n", "signature": "(**kwargs)"}, {"fullname": "mozilla_schema_generator.bhr_ping.BhrPing.schema_url", "modulename": "mozilla_schema_generator.bhr_ping", "qualname": "BhrPing.schema_url", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/telemetry/bhr/bhr.4.schema.json'"}, {"fullname": "mozilla_schema_generator.common_ping", "modulename": "mozilla_schema_generator.common_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.generic_ping.GenericPing"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.__init__", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.__init__", "kind": "function", "doc": "

\n", "signature": "(schema_url, **kwargs)"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.MIN_FX_VERSION", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.MIN_FX_VERSION", "kind": "variable", "doc": "

\n", "default_value": "30"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.env_url", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.env_url", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/templates/include/telemetry/environment.1.schema.json'"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.probes_url", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.probes_url", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/firefox/all/main/all_probes'"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.get_schema", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.get_schema", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.get_env", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.get_env", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.get_probes", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.get_probes", "kind": "function", "doc": "

\n", "signature": "(self) -> List[mozilla_schema_generator.probes.MainProbe]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.config", "modulename": "mozilla_schema_generator.config", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.config.Config", "modulename": "mozilla_schema_generator.config", "qualname": "Config", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.config.Config.__init__", "modulename": "mozilla_schema_generator.config", "qualname": "Config.__init__", "kind": "function", "doc": "

\n", "signature": "(*args, **kwargs)"}, {"fullname": "mozilla_schema_generator.config.Config.match_key", "modulename": "mozilla_schema_generator.config", "qualname": "Config.match_key", "kind": "variable", "doc": "

\n", "default_value": "'match'"}, {"fullname": "mozilla_schema_generator.config.Config.name", "modulename": "mozilla_schema_generator.config", "qualname": "Config.name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.config.Config.get_match_keys", "modulename": "mozilla_schema_generator.config", "qualname": "Config.get_match_keys", "kind": "function", "doc": "

\n", "signature": "(self) -> List[Tuple[str]]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.config.Config.get_schema_elements", "modulename": "mozilla_schema_generator.config", "qualname": "Config.get_schema_elements", "kind": "function", "doc": "

Given a schema and set of probes, get a list of probe and\nthe location in the schema where those probes should be\ninputted.

\n", "signature": "(\tself,\tprobes: List[mozilla_schema_generator.probes.Probe]) -> List[Tuple[tuple, mozilla_schema_generator.probes.Probe]]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping", "modulename": "mozilla_schema_generator.generic_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.logger", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "logger", "kind": "variable", "doc": "

\n", "default_value": "<Logger mozilla_schema_generator.generic_ping (WARNING)>"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.__init__", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.__init__", "kind": "function", "doc": "

\n", "signature": "(schema_url, env_url, probes_url, mps_branch='main')"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.probe_info_base_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.probe_info_base_url", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org'"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.default_encoding", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.default_encoding", "kind": "variable", "doc": "

\n", "default_value": "'utf-8'"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.default_max_size", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.default_max_size", "kind": "variable", "doc": "

\n", "default_value": "12900"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.cache_dir", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.cache_dir", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('.probe_cache')"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.branch_name", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.branch_name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.schema_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.schema_url", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.env_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.env_url", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.probes_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.probes_url", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.get_schema", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.get_schema", "kind": "function", "doc": "

\n", "signature": "(self) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.get_env", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.get_env", "kind": "function", "doc": "

\n", "signature": "(self) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.get_probes", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.get_probes", "kind": "function", "doc": "

\n", "signature": "(self) -> List[mozilla_schema_generator.probes.Probe]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.generate_schema", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.generate_schema", "kind": "function", "doc": "

\n", "signature": "(\tself,\tconfig: mozilla_schema_generator.config.Config,\t*,\tmax_size: int = None) -> Dict[str, mozilla_schema_generator.schema.Schema]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.make_schema", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.make_schema", "kind": "function", "doc": "

Fill in probes based on the config, and keep only the env\nparts of the schema. Throw away everything else.

\n", "signature": "(\tenv: mozilla_schema_generator.schema.Schema,\tprobes: List[mozilla_schema_generator.probes.Probe],\tconfig: mozilla_schema_generator.config.Config,\tmax_size: int) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping", "modulename": "mozilla_schema_generator.glean_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.ROOT_DIR", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "ROOT_DIR", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('/home/circleci/project/mozilla_schema_generator')"}, {"fullname": "mozilla_schema_generator.glean_ping.BUG_1737656_TXT", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "BUG_1737656_TXT", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('/home/circleci/project/mozilla_schema_generator/configs/bug_1737656_affected.txt')"}, {"fullname": "mozilla_schema_generator.glean_ping.logger", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "logger", "kind": "variable", "doc": "

\n", "default_value": "<Logger mozilla_schema_generator.glean_ping (WARNING)>"}, {"fullname": "mozilla_schema_generator.glean_ping.DEFAULT_SCHEMA_URL", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "DEFAULT_SCHEMA_URL", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/glean/glean/glean.1.schema.json'"}, {"fullname": "mozilla_schema_generator.glean_ping.MINIMUM_SCHEMA_URL", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "MINIMUM_SCHEMA_URL", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/glean/glean/glean-min.1.schema.json'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.generic_ping.GenericPing"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.__init__", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.__init__", "kind": "function", "doc": "

\n", "signature": "(repo, **kwargs)"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.probes_url_template", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.probes_url_template", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/{}/metrics'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.ping_url_template", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.ping_url_template", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/{}/pings'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.repos_url", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.repos_url", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/repositories'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.dependencies_url_template", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.dependencies_url_template", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/{}/dependencies'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.default_dependencies", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.default_dependencies", "kind": "variable", "doc": "

\n", "default_value": "['glean-core']"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.repo", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.repo", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.repo_name", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.repo_name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.app_id", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.app_id", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_schema", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_schema", "kind": "function", "doc": "

Fetch schema via URL.

\n\n

Unless generic_schema is set to true, this function makes some modifications\nto allow some workarounds for proper injection of metrics.

\n", "signature": "(self, generic_schema=False) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_dependencies", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_dependencies", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_probes", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_probes", "kind": "function", "doc": "

\n", "signature": "(self) -> List[mozilla_schema_generator.probes.GleanProbe]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_pings", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_pings", "kind": "function", "doc": "

\n", "signature": "(self) -> Set[str]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.apply_default_metadata", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.apply_default_metadata", "kind": "function", "doc": "

apply_default_metadata recurses down into dicts nested\nto an arbitrary depth, updating keys. The default_metadata is merged into\nping_metadata.

\n\n
Parameters
\n\n
    \n
  • ping_metadata: dict onto which the merge is executed
  • \n
  • default_metadata: dct merged into ping_metadata
  • \n
\n\n
Returns
\n\n
\n

None

\n
\n", "signature": "(ping_metadata, default_metadata):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.reorder_metadata", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.reorder_metadata", "kind": "function", "doc": "

\n", "signature": "(metadata):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_pings_and_pipeline_metadata", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_pings_and_pipeline_metadata", "kind": "function", "doc": "

\n", "signature": "(self) -> Dict[str, Dict]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_ping_descriptions", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_ping_descriptions", "kind": "function", "doc": "

\n", "signature": "(self) -> Dict[str, str]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.set_schema_url", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.set_schema_url", "kind": "function", "doc": "

Switch between the glean-min and glean schemas if the ping does not require\ninfo sections as specified in the parsed ping info in probe scraper.

\n", "signature": "(self, metadata):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.generate_schema", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.generate_schema", "kind": "function", "doc": "

\n", "signature": "(\tself,\tconfig,\tgeneric_schema=False) -> Dict[str, mozilla_schema_generator.schema.Schema]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_repos", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_repos", "kind": "function", "doc": "

Retrieve metadata for all non-library Glean repositories

\n", "signature": "():", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.f", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.f", "kind": "variable", "doc": "

\n", "default_value": "<_io.TextIOWrapper name='/home/circleci/project/mozilla_schema_generator/configs/bug_1737656_affected.txt' mode='r' encoding='UTF-8'>"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.bug_1737656_affected_tables", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.bug_1737656_affected_tables", "kind": "variable", "doc": "

\n", "default_value": "['burnham.baseline_v1', 'burnham.deletion_request_v1', 'burnham.discovery_v1', 'burnham.events_v1', 'burnham.metrics_v1', 'burnham.space_ship_ready_v1', 'burnham.starbase46_v1', 'firefox_desktop_background_update.background_update_v1', 'firefox_desktop_background_update.baseline_v1', 'firefox_desktop_background_update.deletion_request_v1', 'firefox_desktop_background_update.events_v1', 'firefox_desktop_background_update.metrics_v1', 'firefox_desktop.baseline_v1', 'firefox_desktop.deletion_request_v1', 'firefox_desktop.events_v1', 'firefox_desktop.fog_validation_v1', 'firefox_desktop.metrics_v1', 'firefox_installer.install_v1', 'firefox_launcher_process.launcher_process_failure_v1', 'messaging_system.cfr_v1', 'messaging_system.infobar_v1', 'messaging_system.moments_v1', 'messaging_system.onboarding_v1', 'messaging_system.personalization_experiment_v1', 'messaging_system.snippets_v1', 'messaging_system.spotlight_v1', 'messaging_system.undesired_events_v1', 'messaging_system.whats_new_panel_v1', 'mlhackweek_search.action_v1', 'mlhackweek_search.baseline_v1', 'mlhackweek_search.custom_v1', 'mlhackweek_search.deletion_request_v1', 'mlhackweek_search.events_v1', 'mlhackweek_search.metrics_v1', 'mozilla_lockbox.addresses_sync_v1', 'mozilla_lockbox.baseline_v1', 'mozilla_lockbox.bookmarks_sync_v1', 'mozilla_lockbox.creditcards_sync_v1', 'mozilla_lockbox.deletion_request_v1', 'mozilla_lockbox.events_v1', 'mozilla_lockbox.history_sync_v1', 'mozilla_lockbox.logins_sync_v1', 'mozilla_lockbox.metrics_v1', 'mozilla_lockbox.sync_v1', 'mozilla_lockbox.tabs_sync_v1', 'mozilla_mach.baseline_v1', 'mozilla_mach.deletion_request_v1', 'mozilla_mach.events_v1', 'mozilla_mach.metrics_v1', 'mozilla_mach.usage_v1', 'mozillavpn.deletion_request_v1', 'mozillavpn.main_v1', 'mozphab.baseline_v1', 'mozphab.deletion_request_v1', 'mozphab.events_v1', 'mozphab.metrics_v1', 'mozphab.usage_v1', 'org_mozilla_bergamot.custom_v1', 'org_mozilla_bergamot.deletion_request_v1', 'org_mozilla_connect_firefox.baseline_v1', 'org_mozilla_connect_firefox.deletion_request_v1', 'org_mozilla_connect_firefox.events_v1', 'org_mozilla_connect_firefox.metrics_v1', 'org_mozilla_fenix.activation_v1', 'org_mozilla_fenix.addresses_sync_v1', 'org_mozilla_fenix.baseline_v1', 'org_mozilla_fenix.bookmarks_sync_v1', 'org_mozilla_fenix.creditcards_sync_v1', 'org_mozilla_fenix.deletion_request_v1', 'org_mozilla_fenix.events_v1', 'org_mozilla_fenix.first_session_v1', 'org_mozilla_fenix.fog_validation_v1', 'org_mozilla_fenix.history_sync_v1', 'org_mozilla_fenix.installation_v1', 'org_mozilla_fenix.logins_sync_v1', 'org_mozilla_fenix.metrics_v1', 'org_mozilla_fenix.migration_v1', 'org_mozilla_fenix.startup_timeline_v1', 'org_mozilla_fenix.sync_v1', 'org_mozilla_fenix.tabs_sync_v1', 'org_mozilla_fenix_nightly.activation_v1', 'org_mozilla_fenix_nightly.addresses_sync_v1', 'org_mozilla_fenix_nightly.baseline_v1', 'org_mozilla_fenix_nightly.bookmarks_sync_v1', 'org_mozilla_fenix_nightly.creditcards_sync_v1', 'org_mozilla_fenix_nightly.deletion_request_v1', 'org_mozilla_fenix_nightly.events_v1', 'org_mozilla_fenix_nightly.first_session_v1', 'org_mozilla_fenix_nightly.fog_validation_v1', 'org_mozilla_fenix_nightly.history_sync_v1', 'org_mozilla_fenix_nightly.installation_v1', 'org_mozilla_fenix_nightly.logins_sync_v1', 'org_mozilla_fenix_nightly.metrics_v1', 'org_mozilla_fenix_nightly.migration_v1', 'org_mozilla_fenix_nightly.startup_timeline_v1', 'org_mozilla_fenix_nightly.sync_v1', 'org_mozilla_fenix_nightly.tabs_sync_v1', 'org_mozilla_fennec_aurora.activation_v1', 'org_mozilla_fennec_aurora.addresses_sync_v1', 'org_mozilla_fennec_aurora.baseline_v1', 'org_mozilla_fennec_aurora.bookmarks_sync_v1', 'org_mozilla_fennec_aurora.creditcards_sync_v1', 'org_mozilla_fennec_aurora.deletion_request_v1', 'org_mozilla_fennec_aurora.events_v1', 'org_mozilla_fennec_aurora.first_session_v1', 'org_mozilla_fennec_aurora.fog_validation_v1', 'org_mozilla_fennec_aurora.history_sync_v1', 'org_mozilla_fennec_aurora.installation_v1', 'org_mozilla_fennec_aurora.logins_sync_v1', 'org_mozilla_fennec_aurora.metrics_v1', 'org_mozilla_fennec_aurora.migration_v1', 'org_mozilla_fennec_aurora.startup_timeline_v1', 'org_mozilla_fennec_aurora.sync_v1', 'org_mozilla_fennec_aurora.tabs_sync_v1', 'org_mozilla_firefox_beta.activation_v1', 'org_mozilla_firefox_beta.addresses_sync_v1', 'org_mozilla_firefox_beta.baseline_v1', 'org_mozilla_firefox_beta.bookmarks_sync_v1', 'org_mozilla_firefox_beta.creditcards_sync_v1', 'org_mozilla_firefox_beta.deletion_request_v1', 'org_mozilla_firefox_beta.events_v1', 'org_mozilla_firefox_beta.first_session_v1', 'org_mozilla_firefox_beta.fog_validation_v1', 'org_mozilla_firefox_beta.history_sync_v1', 'org_mozilla_firefox_beta.installation_v1', 'org_mozilla_firefox_beta.logins_sync_v1', 'org_mozilla_firefox_beta.metrics_v1', 'org_mozilla_firefox_beta.migration_v1', 'org_mozilla_firefox_beta.startup_timeline_v1', 'org_mozilla_firefox_beta.sync_v1', 'org_mozilla_firefox_beta.tabs_sync_v1', 'org_mozilla_firefox.activation_v1', 'org_mozilla_firefox.addresses_sync_v1', 'org_mozilla_firefox.baseline_v1', 'org_mozilla_firefox.bookmarks_sync_v1', 'org_mozilla_firefox.creditcards_sync_v1', 'org_mozilla_firefox.deletion_request_v1', 'org_mozilla_firefox.events_v1', 'org_mozilla_firefox.first_session_v1', 'org_mozilla_firefox.fog_validation_v1', 'org_mozilla_firefox.history_sync_v1', 'org_mozilla_firefox.installation_v1', 'org_mozilla_firefox.logins_sync_v1', 'org_mozilla_firefox.metrics_v1', 'org_mozilla_firefox.migration_v1', 'org_mozilla_firefox.startup_timeline_v1', 'org_mozilla_firefox.sync_v1', 'org_mozilla_firefox.tabs_sync_v1', 'org_mozilla_firefoxreality.baseline_v1', 'org_mozilla_firefoxreality.deletion_request_v1', 'org_mozilla_firefoxreality.events_v1', 'org_mozilla_firefoxreality.launch_v1', 'org_mozilla_firefoxreality.metrics_v1', 'org_mozilla_focus_beta.activation_v1', 'org_mozilla_focus_beta.baseline_v1', 'org_mozilla_focus_beta.deletion_request_v1', 'org_mozilla_focus_beta.events_v1', 'org_mozilla_focus_beta.metrics_v1', 'org_mozilla_focus.activation_v1', 'org_mozilla_focus.baseline_v1', 'org_mozilla_focus.deletion_request_v1', 'org_mozilla_focus.events_v1', 'org_mozilla_focus.metrics_v1', 'org_mozilla_focus_nightly.activation_v1', 'org_mozilla_focus_nightly.baseline_v1', 'org_mozilla_focus_nightly.deletion_request_v1', 'org_mozilla_focus_nightly.events_v1', 'org_mozilla_focus_nightly.metrics_v1', 'org_mozilla_ios_fennec.baseline_v1', 'org_mozilla_ios_fennec.deletion_request_v1', 'org_mozilla_ios_fennec.events_v1', 'org_mozilla_ios_fennec.metrics_v1', 'org_mozilla_ios_firefox.baseline_v1', 'org_mozilla_ios_firefox.deletion_request_v1', 'org_mozilla_ios_firefox.events_v1', 'org_mozilla_ios_firefox.metrics_v1', 'org_mozilla_ios_firefoxbeta.baseline_v1', 'org_mozilla_ios_firefoxbeta.deletion_request_v1', 'org_mozilla_ios_firefoxbeta.events_v1', 'org_mozilla_ios_firefoxbeta.metrics_v1', 'org_mozilla_ios_focus.baseline_v1', 'org_mozilla_ios_focus.deletion_request_v1', 'org_mozilla_ios_focus.events_v1', 'org_mozilla_ios_focus.metrics_v1', 'org_mozilla_ios_klar.baseline_v1', 'org_mozilla_ios_klar.deletion_request_v1', 'org_mozilla_ios_klar.events_v1', 'org_mozilla_ios_klar.metrics_v1', 'org_mozilla_ios_lockbox.baseline_v1', 'org_mozilla_ios_lockbox.deletion_request_v1', 'org_mozilla_ios_lockbox.events_v1', 'org_mozilla_ios_lockbox.metrics_v1', 'org_mozilla_klar.activation_v1', 'org_mozilla_klar.baseline_v1', 'org_mozilla_klar.deletion_request_v1', 'org_mozilla_klar.events_v1', 'org_mozilla_klar.metrics_v1', 'org_mozilla_mozregression.baseline_v1', 'org_mozilla_mozregression.deletion_request_v1', 'org_mozilla_mozregression.events_v1', 'org_mozilla_mozregression.metrics_v1', 'org_mozilla_mozregression.usage_v1', 'org_mozilla_reference_browser.baseline_v1', 'org_mozilla_reference_browser.deletion_request_v1', 'org_mozilla_reference_browser.events_v1', 'org_mozilla_reference_browser.metrics_v1', 'org_mozilla_tv_firefox.baseline_v1', 'org_mozilla_tv_firefox.deletion_request_v1', 'org_mozilla_tv_firefox.events_v1', 'org_mozilla_tv_firefox.metrics_v1', 'org_mozilla_vrbrowser.addresses_sync_v1', 'org_mozilla_vrbrowser.baseline_v1', 'org_mozilla_vrbrowser.bookmarks_sync_v1', 'org_mozilla_vrbrowser.creditcards_sync_v1', 'org_mozilla_vrbrowser.deletion_request_v1', 'org_mozilla_vrbrowser.events_v1', 'org_mozilla_vrbrowser.history_sync_v1', 'org_mozilla_vrbrowser.logins_sync_v1', 'org_mozilla_vrbrowser.metrics_v1', 'org_mozilla_vrbrowser.session_end_v1', 'org_mozilla_vrbrowser.sync_v1', 'org_mozilla_vrbrowser.tabs_sync_v1', 'rally_core.deletion_request_v1', 'rally_core.demographics_v1', 'rally_core.enrollment_v1', 'rally_core.study_enrollment_v1', 'rally_core.study_unenrollment_v1', 'rally_core.uninstall_deletion_v1', 'rally_debug.deletion_request_v1', 'rally_debug.demographics_v1', 'rally_debug.enrollment_v1', 'rally_debug.study_enrollment_v1', 'rally_debug.study_unenrollment_v1', 'rally_debug.uninstall_deletion_v1', 'rally_study_zero_one.deletion_request_v1', 'rally_study_zero_one.rs01_event_v1', 'rally_study_zero_one.study_enrollment_v1', 'rally_zero_one.deletion_request_v1', 'rally_zero_one.measurements_v1', 'rally_zero_one.pioneer_enrollment_v1']"}, {"fullname": "mozilla_schema_generator.main_ping", "modulename": "mozilla_schema_generator.main_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.main_ping.MainPing", "modulename": "mozilla_schema_generator.main_ping", "qualname": "MainPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.common_ping.CommonPing"}, {"fullname": "mozilla_schema_generator.main_ping.MainPing.__init__", "modulename": "mozilla_schema_generator.main_ping", "qualname": "MainPing.__init__", "kind": "function", "doc": "

\n", "signature": "(**kwargs)"}, {"fullname": "mozilla_schema_generator.main_ping.MainPing.schema_url", "modulename": "mozilla_schema_generator.main_ping", "qualname": "MainPing.schema_url", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/telemetry/main/main.4.schema.json'"}, {"fullname": "mozilla_schema_generator.matcher", "modulename": "mozilla_schema_generator.matcher", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.__init__", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.__init__", "kind": "function", "doc": "

table_group: required, which table that group belongs in\ntype: optional, the type of the metrics

\n\n

All other fields are matched as exact matches,\nexcept for contains which checks that that value\nis in the associated array.

\n", "signature": "(match_obj: dict, *, _type=None, table_group=None)"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.table_group_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.table_group_key", "kind": "variable", "doc": "

\n", "default_value": "'table_group'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.type_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.type_key", "kind": "variable", "doc": "

\n", "default_value": "'type'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.contains_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.contains_key", "kind": "variable", "doc": "

\n", "default_value": "'contains'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.not_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.not_key", "kind": "variable", "doc": "

\n", "default_value": "'not'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.any_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.any_key", "kind": "variable", "doc": "

\n", "default_value": "'any'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.keywords", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.keywords", "kind": "variable", "doc": "

\n", "default_value": "{'not', 'contains', 'any', 'type', 'table_group'}"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.table_group", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.table_group", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.type", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.type", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.matcher", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.matcher", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.get_table_group", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.get_table_group", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.matches", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.matches", "kind": "function", "doc": "

\n", "signature": "(self, probe: mozilla_schema_generator.probes.Probe) -> bool:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.clone", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.clone", "kind": "function", "doc": "

\n", "signature": "(self, new_type=None, new_table_group=None):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes", "modulename": "mozilla_schema_generator.probes", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.__init__", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.__init__", "kind": "function", "doc": "

\n", "signature": "(identifier: str, definition: dict)"}, {"fullname": "mozilla_schema_generator.probes.Probe.type_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.type_key", "kind": "variable", "doc": "

\n", "default_value": "'type'"}, {"fullname": "mozilla_schema_generator.probes.Probe.name_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.name_key", "kind": "variable", "doc": "

\n", "default_value": "'name'"}, {"fullname": "mozilla_schema_generator.probes.Probe.history_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.history_key", "kind": "variable", "doc": "

\n", "default_value": "'history'"}, {"fullname": "mozilla_schema_generator.probes.Probe.in_source_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.in_source_key", "kind": "variable", "doc": "

\n", "default_value": "'in-source'"}, {"fullname": "mozilla_schema_generator.probes.Probe.id", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.id", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.type", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.type", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.name", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_type", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_type", "kind": "function", "doc": "

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_name", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_name", "kind": "function", "doc": "

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_description", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_description", "kind": "function", "doc": "

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_last_change", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_last_change", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_first_added", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_first_added", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_schema", "kind": "function", "doc": "

\n", "signature": "(self, addtlProps: Any) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get", "kind": "function", "doc": "

\n", "signature": "(self, *k) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.MainProbe", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe", "kind": "class", "doc": "

\n", "bases": "Probe"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.__init__", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.__init__", "kind": "function", "doc": "

\n", "signature": "(identifier: str, definition: dict)"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.first_added_key", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.first_added_key", "kind": "variable", "doc": "

\n", "default_value": "'first_added'"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.histogram_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.histogram_schema", "kind": "variable", "doc": "

\n", "default_value": "{'type': 'string'}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.parent_processes", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.parent_processes", "kind": "variable", "doc": "

\n", "default_value": "{'main'}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.child_processes", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.child_processes", "kind": "variable", "doc": "

\n", "default_value": "{'socket', 'dynamic', 'content', 'gpu', 'extension'}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.processes_map", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.processes_map", "kind": "variable", "doc": "

\n", "default_value": "{'all_childs': {'socket', 'dynamic', 'content', 'gpu', 'extension'}, 'all_children': {'socket', 'dynamic', 'content', 'gpu', 'extension'}, 'all': {'extension', 'socket', 'dynamic', 'content', 'main', 'gpu'}}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.get_first_added", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.get_first_added", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.get_last_change", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.get_last_change", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.get_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.get_schema", "kind": "function", "doc": "

\n", "signature": "(self, addtlProps: Any) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe", "kind": "class", "doc": "

\n", "bases": "Probe"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.__init__", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.__init__", "kind": "function", "doc": "

\n", "signature": "(identifier: str, definition: dict, *, pings: List[str] = None)"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.all_pings_keywords", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.all_pings_keywords", "kind": "variable", "doc": "

\n", "default_value": "('all-pings', 'all_pings')"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.first_added_key", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.first_added_key", "kind": "variable", "doc": "

\n", "default_value": "'first_added'"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.is_in_source", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.is_in_source", "kind": "function", "doc": "

\n", "signature": "(self) -> bool:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.get_first_added", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.get_first_added", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.get_last_change", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.get_last_change", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.get_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.get_schema", "kind": "function", "doc": "

\n", "signature": "(self, addtlProps: Any) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema", "modulename": "mozilla_schema_generator.schema", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.schema.SchemaException", "modulename": "mozilla_schema_generator.schema", "qualname": "SchemaException", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "builtins.Exception"}, {"fullname": "mozilla_schema_generator.schema.SchemaEncoder", "modulename": "mozilla_schema_generator.schema", "qualname": "SchemaEncoder", "kind": "class", "doc": "

Extensible JSON http://json.org encoder for Python data structures.

\n\n

Supports the following objects and types by default:

\n\n

+-------------------+---------------+\n| Python | JSON |\n+===================+===============+\n| dict | object |\n+-------------------+---------------+\n| list, tuple | array |\n+-------------------+---------------+\n| str | string |\n+-------------------+---------------+\n| int, float | number |\n+-------------------+---------------+\n| True | true |\n+-------------------+---------------+\n| False | false |\n+-------------------+---------------+\n| None | null |\n+-------------------+---------------+

\n\n

To extend this to recognize other objects, subclass and implement a\n.default() method with another method that returns a serializable\nobject for o if possible, otherwise it should call the superclass\nimplementation (to raise TypeError).

\n", "bases": "json.encoder.JSONEncoder"}, {"fullname": "mozilla_schema_generator.schema.SchemaEncoder.default", "modulename": "mozilla_schema_generator.schema", "qualname": "SchemaEncoder.default", "kind": "function", "doc": "

Implement this method in a subclass such that it returns\na serializable object for o, or calls the base implementation\n(to raise a TypeError).

\n\n

For example, to support arbitrary iterators, you could\nimplement default like this::

\n\n
def default(self, o):\n    try:\n        iterable = iter(o)\n    except TypeError:\n        pass\n    else:\n        return list(iterable)\n    # Let the base class default method raise the TypeError\n    return JSONEncoder.default(self, o)\n
\n", "signature": "(self, obj):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.schema.Schema.__init__", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.__init__", "kind": "function", "doc": "

\n", "signature": "(schema: dict)"}, {"fullname": "mozilla_schema_generator.schema.Schema.schema", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.schema", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.schema.Schema.set_schema_elem", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.set_schema_elem", "kind": "function", "doc": "

@param key: The key set\n@param elem: The value to set the key to\n@param propagate: If True, creates objects until it reaches the full key.\n If False, and the parent of the key is not in the\n schema, then the key will not be added.

\n", "signature": "(self, key: Iterable[str], elem: Any, *, propagate=True) -> dict:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.get", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.get", "kind": "function", "doc": "

\n", "signature": "(self, key: Iterable[str]) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.get_size", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.get_size", "kind": "function", "doc": "

\n", "signature": "(self) -> int:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.clone", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.clone", "kind": "function", "doc": "

\n", "signature": "(self) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.delete_group_from_schema", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.delete_group_from_schema", "kind": "function", "doc": "

@param key: The key to remove\n@param propagate: If True, then removes any parents of the deleted key\n if they are now empty, i.e. there are no other\n properties.

\n", "signature": "(self, key: Iterable[str], *, propagate=True):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.property_exists", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.property_exists", "kind": "function", "doc": "

@param key: The key to check for existence

\n", "signature": "(self, key: Iterable[str]) -> bool:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.subset_pings", "modulename": "mozilla_schema_generator.subset_pings", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.subset_pings.ADDITIONAL_METADATA_FIELDS", "modulename": "mozilla_schema_generator.subset_pings", "qualname": "ADDITIONAL_METADATA_FIELDS", "kind": "variable", "doc": "

\n", "default_value": "['client_id', 'clientId', 'client_info']"}, {"fullname": "mozilla_schema_generator.subset_pings.generate", "modulename": "mozilla_schema_generator.subset_pings", "qualname": "generate", "kind": "function", "doc": "

Read in pings from disk and split fields into new subset pings.

\n\n

If configured, also produce a remainder ping with all the fields that weren't moved.

\n", "signature": "(\tconfig_data,\tout_dir: pathlib.Path) -> Dict[str, Dict[str, Dict[str, Dict]]]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.utils", "modulename": "mozilla_schema_generator.utils", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.utils.prepend_properties", "modulename": "mozilla_schema_generator.utils", "qualname": "prepend_properties", "kind": "function", "doc": "

Add a \"properties\" before each element of key.\nThis allows the field to be retrieved in a JSON schema

\n\n

ex:

\n\n
>> key = (\"hello\", \"world\")\n>> _prepend_propertes(key)\n(\"properties\", \"hello\", \"properties\", \"world)\n
\n", "signature": "(key: Tuple[str]) -> Tuple[str]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery", "modulename": "mozilla_schema_generator.validate_bigquery", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.validate_bigquery.BASE_DIR", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "BASE_DIR", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('/app')"}, {"fullname": "mozilla_schema_generator.validate_bigquery.compute_compact_columns", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "compute_compact_columns", "kind": "function", "doc": "

\n", "signature": "(document):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.check_evolution", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "check_evolution", "kind": "function", "doc": "

\n", "signature": "(base, head, verbose=False):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.copy_schemas", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "copy_schemas", "kind": "function", "doc": "

Copy BigQuery schemas to a directory as an intermediary step for schema\nevolution checks.

\n", "signature": "(\thead: str,\trepository: pathlib.Path,\tartifact: pathlib.Path) -> pathlib.Path:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.checkout_copy_schemas_revisions", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "checkout_copy_schemas_revisions", "kind": "function", "doc": "

Checkout two revisions of the schema repository into the artifact\ndirectory. This returns paths to the head and the base directories.

\n", "signature": "(\thead: str,\tbase: str,\trepository: pathlib.Path,\tartifact: pathlib.Path) -> Tuple[pathlib.Path, pathlib.Path]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.parse_incompatibility_allowlist", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "parse_incompatibility_allowlist", "kind": "function", "doc": "

\n", "signature": "(allowlist: pathlib.Path) -> list:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.validate", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "validate", "kind": "variable", "doc": "

Click command group.

\n", "default_value": "<Group validate>"}, {"fullname": "mozilla_schema_generator.validate_bigquery.local_validation", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "local_validation", "kind": "variable", "doc": "

Validate schemas using a heuristic from the compact schemas.

\n", "default_value": "<Command local-validation>"}]; + /** pdoc search index */const docs = [{"fullname": "mozilla_schema_generator", "modulename": "mozilla_schema_generator", "kind": "module", "doc": "

Generate schemas for mozilla-pipeline-schemas.

\n\n

\"CircleCI\"\n\"Latest

\n\n

Mozilla Schema Generator

\n\n

A library for generating full representations of Mozilla telemetry pings.

\n\n

See Mozilla Pipeline Schemas\nfor the more generic structure of pings. This library takes those generic structures and fills in\nall of the probes we expect to see in the appropriate places.

\n\n

Telemetry Integration

\n\n

There are two generic ping types we're targeting for this library:

\n\n
    \n
  1. The Common Ping Format\nis used for many legacy pings from Firefox Desktop ping, including the \"main\" ping
  2. \n
  3. The Glean Ping Format is the common structure being used for\nall newly instrumented products at Mozilla, including mobile browsers.
  4. \n
\n\n

This library takes the information for what should be in those pings from the Probe Info Service.

\n\n

Data Store Integration

\n\n

The primary use of the schemas is for integration with the\nSchema Transpiler.\nThe schemas that this repository generates can be transpiled into Avro and Bigquery. They define\nthe schema of the Avro and BigQuery tables that the BQ Sink\nwrites to.

\n\n

Validation

\n\n

When we validate pings against a schema in the data pipeline, we use the generic versions\nrather than the versions generated by this repository's machinery. While the schemas produced\nhere are guaranteed to be more correct since they include explicit definitions of every metric and probe,\nwe find in practice there are too many edge cases where a probe is sent with the incorrect type\nand we need to coerce it to the correct type when loading to BigQuery.\nWe also purposely represent some complex types as JSON strings in schemas, relying on the BQ loader\nto coerce objects to string.\nWe could still consider using the generated schemas for validation in the future, but\nadditional work would be required to ensure it does not lead to mass rejection of pings.

\n\n

Usage

\n\n

Main Ping

\n\n

Generate the Full Main Ping schema:

\n\n
mozilla-schema-generator generate-main-ping\n
\n\n

The out-dir parameter will be the namespace for the pings.

\n\n

To see a full list of options, run mozilla-schema-generator generate-main-ping --help.

\n\n

Glean

\n\n

Generate all Glean ping schemas - one for each application, for each ping\nthat application sends:

\n\n
mozilla-schema-generator generate-glean-pings\n
\n\n

Write schemas to a directory:

\n\n
mozilla-schema-generator generate-glean-pings --out-dir glean-ping\n
\n\n

To see a full list of options, run mozilla-schema-generator generate-glean-pings --help.

\n\n

Configuration Files

\n\n

Configuration files are by default found in /config. You can also specify your own when running the generator.

\n\n

Configuration files match certain parts of a ping to certain types of probes or metrics. The nesting\nof the config file matches the ping it is filling in. For example, Glean stores probe types under\nthe metrics key, so the nesting looks like this:

\n\n
{\n    \"metrics\": {\n        \"string\": {\n            <METRIC_ID>: {...}\n        }\n    }\n}\n
\n\n

While the generic schema doesn't include information about the specific <METRIC_ID>s being included,\nthe schema-generator does. To include the correct metrics that we would find in that section of the ping,\nwe would organize the config.yaml file like this:

\n\n
metrics:\n    string:\n        match:\n            type: string\n
\n\n

The match key indicates that we should fill-in this section of the ping schema with metrics,\nand the type: string makes sure we only put string metrics in there. You can do an exact\nmatch on any field available in the ping info from the probe-info-service,\nwhich also contains the Desktop probes.

\n\n

There are a few additional keywords allowable under any field:

\n\n
    \n
  • contains - e.g. process: contains: main, indicates that the process field is an array\nand it should only match those that include the entry main.
  • \n
  • not - e.g. send_in_pings: not: glean_ping_info, indicates that we should match\nany field for send_in_pings _except_ glean_ping_info.
  • \n
\n\n

table_group Key

\n\n

This specific field is for indicating which table group that section of the ping should be included in when\nsplitting the schema. Currently we do not split any pings. See the section on BigQuery\nLimitations and Splitting for more info.

\n\n

Allowing schema incompatible changes

\n\n

On every run of the schema generator, there is a check for incompatible changes\nbetween the previous revision and current generated revision. A schema\nincompatible change includes a removal of a schema or a column, or a change in\nthe type definition of a column.

\n\n

There are two methods to get around these restrictions. If you are actively\ndeveloping the schema generator and need to introduce a schema incompatible\nchange, set MPS_VALIDATE_BQ=false.

\n\n

If a schema incompatible change needs to be introduced in production (i.e.\ngenerated-schemas), then modify the incompatibility-allowlist at the root of\nthe repository. Add documents in the form of\n{namespace}.{doctype}.{docversion}. Globs are allowed. For example, add the\nfollowing line to allow remove schemas under the my_glean_app namespace:

\n\n
\n
my_glean_app.*\n
\n
\n\n

Once the commit has gone through successfully, this line should be removed from\nthe document.

\n\n

Development and Testing

\n\n

Install requirements:

\n\n
\n
make install-requirements\n
\n
\n\n

Ensure that the mozilla-pipeline-schemas submodule has been checked out:

\n\n
\n
git submodule init\ngit submodule update --remote\n
\n
\n\n

Run tests:

\n\n
\n
make test\n
\n
\n\n

Publish generated schemas to mozilla-generated-schemas/test-generated-schemas\nrun:

\n\n
\n
git fetch origin\n\ngit checkout <branch-to-test>\n\nexport MPS_SSH_KEY_BASE64=$(cat ~/.ssh/id_rsa | base64)\n\n# generate all schemas for current main\ngit checkout main && git pull make build && make run\n\n# generate all schemas with changes and compare with main\ngit checkout <branch-to-test> make build && make run\n
\n
\n"}, {"fullname": "mozilla_schema_generator.bhr_ping", "modulename": "mozilla_schema_generator.bhr_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.bhr_ping.BhrPing", "modulename": "mozilla_schema_generator.bhr_ping", "qualname": "BhrPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.common_ping.CommonPing"}, {"fullname": "mozilla_schema_generator.bhr_ping.BhrPing.__init__", "modulename": "mozilla_schema_generator.bhr_ping", "qualname": "BhrPing.__init__", "kind": "function", "doc": "

\n", "signature": "(**kwargs)"}, {"fullname": "mozilla_schema_generator.bhr_ping.BhrPing.schema_url", "modulename": "mozilla_schema_generator.bhr_ping", "qualname": "BhrPing.schema_url", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/telemetry/bhr/bhr.4.schema.json'"}, {"fullname": "mozilla_schema_generator.common_ping", "modulename": "mozilla_schema_generator.common_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.generic_ping.GenericPing"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.__init__", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.__init__", "kind": "function", "doc": "

\n", "signature": "(schema_url, **kwargs)"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.MIN_FX_VERSION", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.MIN_FX_VERSION", "kind": "variable", "doc": "

\n", "default_value": "30"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.env_url", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.env_url", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/templates/include/telemetry/environment.1.schema.json'"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.probes_url", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.probes_url", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/firefox/all/main/all_probes'"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.get_schema", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.get_schema", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.get_env", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.get_env", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.common_ping.CommonPing.get_probes", "modulename": "mozilla_schema_generator.common_ping", "qualname": "CommonPing.get_probes", "kind": "function", "doc": "

\n", "signature": "(self) -> List[mozilla_schema_generator.probes.MainProbe]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.config", "modulename": "mozilla_schema_generator.config", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.config.Config", "modulename": "mozilla_schema_generator.config", "qualname": "Config", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.config.Config.__init__", "modulename": "mozilla_schema_generator.config", "qualname": "Config.__init__", "kind": "function", "doc": "

\n", "signature": "(*args, **kwargs)"}, {"fullname": "mozilla_schema_generator.config.Config.match_key", "modulename": "mozilla_schema_generator.config", "qualname": "Config.match_key", "kind": "variable", "doc": "

\n", "default_value": "'match'"}, {"fullname": "mozilla_schema_generator.config.Config.name", "modulename": "mozilla_schema_generator.config", "qualname": "Config.name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.config.Config.get_match_keys", "modulename": "mozilla_schema_generator.config", "qualname": "Config.get_match_keys", "kind": "function", "doc": "

\n", "signature": "(self) -> List[Tuple[str]]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.config.Config.get_schema_elements", "modulename": "mozilla_schema_generator.config", "qualname": "Config.get_schema_elements", "kind": "function", "doc": "

Given a schema and set of probes, get a list of probe and\nthe location in the schema where those probes should be\ninputted.

\n", "signature": "(\tself,\tprobes: List[mozilla_schema_generator.probes.Probe]) -> List[Tuple[tuple, mozilla_schema_generator.probes.Probe]]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping", "modulename": "mozilla_schema_generator.generic_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.logger", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "logger", "kind": "variable", "doc": "

\n", "default_value": "<Logger mozilla_schema_generator.generic_ping (WARNING)>"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.__init__", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.__init__", "kind": "function", "doc": "

\n", "signature": "(schema_url, env_url, probes_url, mps_branch='main')"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.probe_info_base_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.probe_info_base_url", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org'"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.default_encoding", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.default_encoding", "kind": "variable", "doc": "

\n", "default_value": "'utf-8'"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.default_max_size", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.default_max_size", "kind": "variable", "doc": "

\n", "default_value": "12900"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.cache_dir", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.cache_dir", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('.probe_cache')"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.branch_name", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.branch_name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.schema_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.schema_url", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.env_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.env_url", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.probes_url", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.probes_url", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.get_schema", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.get_schema", "kind": "function", "doc": "

\n", "signature": "(self) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.get_env", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.get_env", "kind": "function", "doc": "

\n", "signature": "(self) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.get_probes", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.get_probes", "kind": "function", "doc": "

\n", "signature": "(self) -> List[mozilla_schema_generator.probes.Probe]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.generate_schema", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.generate_schema", "kind": "function", "doc": "

\n", "signature": "(\tself,\tconfig: mozilla_schema_generator.config.Config,\t*,\tmax_size: int = None) -> Dict[str, mozilla_schema_generator.schema.Schema]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.generic_ping.GenericPing.make_schema", "modulename": "mozilla_schema_generator.generic_ping", "qualname": "GenericPing.make_schema", "kind": "function", "doc": "

Fill in probes based on the config, and keep only the env\nparts of the schema. Throw away everything else.

\n", "signature": "(\tenv: mozilla_schema_generator.schema.Schema,\tprobes: List[mozilla_schema_generator.probes.Probe],\tconfig: mozilla_schema_generator.config.Config,\tmax_size: int) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping", "modulename": "mozilla_schema_generator.glean_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.ROOT_DIR", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "ROOT_DIR", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('/home/circleci/project/mozilla_schema_generator')"}, {"fullname": "mozilla_schema_generator.glean_ping.BUG_1737656_TXT", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "BUG_1737656_TXT", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('/home/circleci/project/mozilla_schema_generator/configs/bug_1737656_affected.txt')"}, {"fullname": "mozilla_schema_generator.glean_ping.logger", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "logger", "kind": "variable", "doc": "

\n", "default_value": "<Logger mozilla_schema_generator.glean_ping (WARNING)>"}, {"fullname": "mozilla_schema_generator.glean_ping.DEFAULT_SCHEMA_URL", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "DEFAULT_SCHEMA_URL", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/glean/glean/glean.1.schema.json'"}, {"fullname": "mozilla_schema_generator.glean_ping.MINIMUM_SCHEMA_URL", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "MINIMUM_SCHEMA_URL", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/glean/glean/glean-min.1.schema.json'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.generic_ping.GenericPing"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.__init__", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.__init__", "kind": "function", "doc": "

\n", "signature": "(repo, **kwargs)"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.probes_url_template", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.probes_url_template", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/{}/metrics'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.ping_url_template", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.ping_url_template", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/{}/pings'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.repos_url", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.repos_url", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/repositories'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.dependencies_url_template", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.dependencies_url_template", "kind": "variable", "doc": "

\n", "default_value": "'https://probeinfo.telemetry.mozilla.org/glean/{}/dependencies'"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.default_dependencies", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.default_dependencies", "kind": "variable", "doc": "

\n", "default_value": "['glean-core']"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.repo", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.repo", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.repo_name", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.repo_name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.app_id", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.app_id", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_schema", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_schema", "kind": "function", "doc": "

Fetch schema via URL.

\n\n

Unless generic_schema is set to true, this function makes some modifications\nto allow some workarounds for proper injection of metrics.

\n", "signature": "(self, generic_schema=False) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_dependencies", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_dependencies", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_probes", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_probes", "kind": "function", "doc": "

\n", "signature": "(self) -> List[mozilla_schema_generator.probes.GleanProbe]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_pings", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_pings", "kind": "function", "doc": "

\n", "signature": "(self) -> Set[str]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.apply_default_metadata", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.apply_default_metadata", "kind": "function", "doc": "

apply_default_metadata recurses down into dicts nested\nto an arbitrary depth, updating keys. The default_metadata is merged into\nping_metadata.

\n\n
Parameters
\n\n
    \n
  • ping_metadata: dict onto which the merge is executed
  • \n
  • default_metadata: dct merged into ping_metadata
  • \n
\n\n
Returns
\n\n
\n

None

\n
\n", "signature": "(ping_metadata, default_metadata):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.reorder_metadata", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.reorder_metadata", "kind": "function", "doc": "

\n", "signature": "(metadata):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_pings_and_pipeline_metadata", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_pings_and_pipeline_metadata", "kind": "function", "doc": "

\n", "signature": "(self) -> Dict[str, Dict]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_ping_descriptions", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_ping_descriptions", "kind": "function", "doc": "

\n", "signature": "(self) -> Dict[str, str]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.set_schema_url", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.set_schema_url", "kind": "function", "doc": "

Switch between the glean-min and glean schemas if the ping does not require\ninfo sections as specified in the parsed ping info in probe scraper.

\n", "signature": "(self, metadata):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.generate_schema", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.generate_schema", "kind": "function", "doc": "

\n", "signature": "(\tself,\tconfig,\tgeneric_schema=False) -> Dict[str, mozilla_schema_generator.schema.Schema]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.get_repos", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.get_repos", "kind": "function", "doc": "

Retrieve metadata for all non-library Glean repositories

\n", "signature": "():", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.f", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.f", "kind": "variable", "doc": "

\n", "default_value": "<_io.TextIOWrapper name='/home/circleci/project/mozilla_schema_generator/configs/bug_1737656_affected.txt' mode='r' encoding='UTF-8'>"}, {"fullname": "mozilla_schema_generator.glean_ping.GleanPing.bug_1737656_affected_tables", "modulename": "mozilla_schema_generator.glean_ping", "qualname": "GleanPing.bug_1737656_affected_tables", "kind": "variable", "doc": "

\n", "default_value": "['burnham.baseline_v1', 'burnham.deletion_request_v1', 'burnham.discovery_v1', 'burnham.events_v1', 'burnham.metrics_v1', 'burnham.space_ship_ready_v1', 'burnham.starbase46_v1', 'firefox_desktop_background_update.background_update_v1', 'firefox_desktop_background_update.baseline_v1', 'firefox_desktop_background_update.deletion_request_v1', 'firefox_desktop_background_update.events_v1', 'firefox_desktop_background_update.metrics_v1', 'firefox_desktop.baseline_v1', 'firefox_desktop.deletion_request_v1', 'firefox_desktop.events_v1', 'firefox_desktop.fog_validation_v1', 'firefox_desktop.metrics_v1', 'firefox_installer.install_v1', 'firefox_launcher_process.launcher_process_failure_v1', 'messaging_system.cfr_v1', 'messaging_system.infobar_v1', 'messaging_system.moments_v1', 'messaging_system.onboarding_v1', 'messaging_system.personalization_experiment_v1', 'messaging_system.snippets_v1', 'messaging_system.spotlight_v1', 'messaging_system.undesired_events_v1', 'messaging_system.whats_new_panel_v1', 'mlhackweek_search.action_v1', 'mlhackweek_search.baseline_v1', 'mlhackweek_search.custom_v1', 'mlhackweek_search.deletion_request_v1', 'mlhackweek_search.events_v1', 'mlhackweek_search.metrics_v1', 'mozilla_lockbox.addresses_sync_v1', 'mozilla_lockbox.baseline_v1', 'mozilla_lockbox.bookmarks_sync_v1', 'mozilla_lockbox.creditcards_sync_v1', 'mozilla_lockbox.deletion_request_v1', 'mozilla_lockbox.events_v1', 'mozilla_lockbox.history_sync_v1', 'mozilla_lockbox.logins_sync_v1', 'mozilla_lockbox.metrics_v1', 'mozilla_lockbox.sync_v1', 'mozilla_lockbox.tabs_sync_v1', 'mozilla_mach.baseline_v1', 'mozilla_mach.deletion_request_v1', 'mozilla_mach.events_v1', 'mozilla_mach.metrics_v1', 'mozilla_mach.usage_v1', 'mozillavpn.deletion_request_v1', 'mozillavpn.main_v1', 'mozphab.baseline_v1', 'mozphab.deletion_request_v1', 'mozphab.events_v1', 'mozphab.metrics_v1', 'mozphab.usage_v1', 'org_mozilla_bergamot.custom_v1', 'org_mozilla_bergamot.deletion_request_v1', 'org_mozilla_connect_firefox.baseline_v1', 'org_mozilla_connect_firefox.deletion_request_v1', 'org_mozilla_connect_firefox.events_v1', 'org_mozilla_connect_firefox.metrics_v1', 'org_mozilla_fenix.activation_v1', 'org_mozilla_fenix.addresses_sync_v1', 'org_mozilla_fenix.baseline_v1', 'org_mozilla_fenix.bookmarks_sync_v1', 'org_mozilla_fenix.creditcards_sync_v1', 'org_mozilla_fenix.deletion_request_v1', 'org_mozilla_fenix.events_v1', 'org_mozilla_fenix.first_session_v1', 'org_mozilla_fenix.fog_validation_v1', 'org_mozilla_fenix.history_sync_v1', 'org_mozilla_fenix.installation_v1', 'org_mozilla_fenix.logins_sync_v1', 'org_mozilla_fenix.metrics_v1', 'org_mozilla_fenix.migration_v1', 'org_mozilla_fenix.startup_timeline_v1', 'org_mozilla_fenix.sync_v1', 'org_mozilla_fenix.tabs_sync_v1', 'org_mozilla_fenix_nightly.activation_v1', 'org_mozilla_fenix_nightly.addresses_sync_v1', 'org_mozilla_fenix_nightly.baseline_v1', 'org_mozilla_fenix_nightly.bookmarks_sync_v1', 'org_mozilla_fenix_nightly.creditcards_sync_v1', 'org_mozilla_fenix_nightly.deletion_request_v1', 'org_mozilla_fenix_nightly.events_v1', 'org_mozilla_fenix_nightly.first_session_v1', 'org_mozilla_fenix_nightly.fog_validation_v1', 'org_mozilla_fenix_nightly.history_sync_v1', 'org_mozilla_fenix_nightly.installation_v1', 'org_mozilla_fenix_nightly.logins_sync_v1', 'org_mozilla_fenix_nightly.metrics_v1', 'org_mozilla_fenix_nightly.migration_v1', 'org_mozilla_fenix_nightly.startup_timeline_v1', 'org_mozilla_fenix_nightly.sync_v1', 'org_mozilla_fenix_nightly.tabs_sync_v1', 'org_mozilla_fennec_aurora.activation_v1', 'org_mozilla_fennec_aurora.addresses_sync_v1', 'org_mozilla_fennec_aurora.baseline_v1', 'org_mozilla_fennec_aurora.bookmarks_sync_v1', 'org_mozilla_fennec_aurora.creditcards_sync_v1', 'org_mozilla_fennec_aurora.deletion_request_v1', 'org_mozilla_fennec_aurora.events_v1', 'org_mozilla_fennec_aurora.first_session_v1', 'org_mozilla_fennec_aurora.fog_validation_v1', 'org_mozilla_fennec_aurora.history_sync_v1', 'org_mozilla_fennec_aurora.installation_v1', 'org_mozilla_fennec_aurora.logins_sync_v1', 'org_mozilla_fennec_aurora.metrics_v1', 'org_mozilla_fennec_aurora.migration_v1', 'org_mozilla_fennec_aurora.startup_timeline_v1', 'org_mozilla_fennec_aurora.sync_v1', 'org_mozilla_fennec_aurora.tabs_sync_v1', 'org_mozilla_firefox_beta.activation_v1', 'org_mozilla_firefox_beta.addresses_sync_v1', 'org_mozilla_firefox_beta.baseline_v1', 'org_mozilla_firefox_beta.bookmarks_sync_v1', 'org_mozilla_firefox_beta.creditcards_sync_v1', 'org_mozilla_firefox_beta.deletion_request_v1', 'org_mozilla_firefox_beta.events_v1', 'org_mozilla_firefox_beta.first_session_v1', 'org_mozilla_firefox_beta.fog_validation_v1', 'org_mozilla_firefox_beta.history_sync_v1', 'org_mozilla_firefox_beta.installation_v1', 'org_mozilla_firefox_beta.logins_sync_v1', 'org_mozilla_firefox_beta.metrics_v1', 'org_mozilla_firefox_beta.migration_v1', 'org_mozilla_firefox_beta.startup_timeline_v1', 'org_mozilla_firefox_beta.sync_v1', 'org_mozilla_firefox_beta.tabs_sync_v1', 'org_mozilla_firefox.activation_v1', 'org_mozilla_firefox.addresses_sync_v1', 'org_mozilla_firefox.baseline_v1', 'org_mozilla_firefox.bookmarks_sync_v1', 'org_mozilla_firefox.creditcards_sync_v1', 'org_mozilla_firefox.deletion_request_v1', 'org_mozilla_firefox.events_v1', 'org_mozilla_firefox.first_session_v1', 'org_mozilla_firefox.fog_validation_v1', 'org_mozilla_firefox.history_sync_v1', 'org_mozilla_firefox.installation_v1', 'org_mozilla_firefox.logins_sync_v1', 'org_mozilla_firefox.metrics_v1', 'org_mozilla_firefox.migration_v1', 'org_mozilla_firefox.startup_timeline_v1', 'org_mozilla_firefox.sync_v1', 'org_mozilla_firefox.tabs_sync_v1', 'org_mozilla_firefoxreality.baseline_v1', 'org_mozilla_firefoxreality.deletion_request_v1', 'org_mozilla_firefoxreality.events_v1', 'org_mozilla_firefoxreality.launch_v1', 'org_mozilla_firefoxreality.metrics_v1', 'org_mozilla_focus_beta.activation_v1', 'org_mozilla_focus_beta.baseline_v1', 'org_mozilla_focus_beta.deletion_request_v1', 'org_mozilla_focus_beta.events_v1', 'org_mozilla_focus_beta.metrics_v1', 'org_mozilla_focus.activation_v1', 'org_mozilla_focus.baseline_v1', 'org_mozilla_focus.deletion_request_v1', 'org_mozilla_focus.events_v1', 'org_mozilla_focus.metrics_v1', 'org_mozilla_focus_nightly.activation_v1', 'org_mozilla_focus_nightly.baseline_v1', 'org_mozilla_focus_nightly.deletion_request_v1', 'org_mozilla_focus_nightly.events_v1', 'org_mozilla_focus_nightly.metrics_v1', 'org_mozilla_ios_fennec.baseline_v1', 'org_mozilla_ios_fennec.deletion_request_v1', 'org_mozilla_ios_fennec.events_v1', 'org_mozilla_ios_fennec.metrics_v1', 'org_mozilla_ios_firefox.baseline_v1', 'org_mozilla_ios_firefox.deletion_request_v1', 'org_mozilla_ios_firefox.events_v1', 'org_mozilla_ios_firefox.metrics_v1', 'org_mozilla_ios_firefoxbeta.baseline_v1', 'org_mozilla_ios_firefoxbeta.deletion_request_v1', 'org_mozilla_ios_firefoxbeta.events_v1', 'org_mozilla_ios_firefoxbeta.metrics_v1', 'org_mozilla_ios_focus.baseline_v1', 'org_mozilla_ios_focus.deletion_request_v1', 'org_mozilla_ios_focus.events_v1', 'org_mozilla_ios_focus.metrics_v1', 'org_mozilla_ios_klar.baseline_v1', 'org_mozilla_ios_klar.deletion_request_v1', 'org_mozilla_ios_klar.events_v1', 'org_mozilla_ios_klar.metrics_v1', 'org_mozilla_ios_lockbox.baseline_v1', 'org_mozilla_ios_lockbox.deletion_request_v1', 'org_mozilla_ios_lockbox.events_v1', 'org_mozilla_ios_lockbox.metrics_v1', 'org_mozilla_klar.activation_v1', 'org_mozilla_klar.baseline_v1', 'org_mozilla_klar.deletion_request_v1', 'org_mozilla_klar.events_v1', 'org_mozilla_klar.metrics_v1', 'org_mozilla_mozregression.baseline_v1', 'org_mozilla_mozregression.deletion_request_v1', 'org_mozilla_mozregression.events_v1', 'org_mozilla_mozregression.metrics_v1', 'org_mozilla_mozregression.usage_v1', 'org_mozilla_reference_browser.baseline_v1', 'org_mozilla_reference_browser.deletion_request_v1', 'org_mozilla_reference_browser.events_v1', 'org_mozilla_reference_browser.metrics_v1', 'org_mozilla_tv_firefox.baseline_v1', 'org_mozilla_tv_firefox.deletion_request_v1', 'org_mozilla_tv_firefox.events_v1', 'org_mozilla_tv_firefox.metrics_v1', 'org_mozilla_vrbrowser.addresses_sync_v1', 'org_mozilla_vrbrowser.baseline_v1', 'org_mozilla_vrbrowser.bookmarks_sync_v1', 'org_mozilla_vrbrowser.creditcards_sync_v1', 'org_mozilla_vrbrowser.deletion_request_v1', 'org_mozilla_vrbrowser.events_v1', 'org_mozilla_vrbrowser.history_sync_v1', 'org_mozilla_vrbrowser.logins_sync_v1', 'org_mozilla_vrbrowser.metrics_v1', 'org_mozilla_vrbrowser.session_end_v1', 'org_mozilla_vrbrowser.sync_v1', 'org_mozilla_vrbrowser.tabs_sync_v1', 'rally_core.deletion_request_v1', 'rally_core.demographics_v1', 'rally_core.enrollment_v1', 'rally_core.study_enrollment_v1', 'rally_core.study_unenrollment_v1', 'rally_core.uninstall_deletion_v1', 'rally_debug.deletion_request_v1', 'rally_debug.demographics_v1', 'rally_debug.enrollment_v1', 'rally_debug.study_enrollment_v1', 'rally_debug.study_unenrollment_v1', 'rally_debug.uninstall_deletion_v1', 'rally_study_zero_one.deletion_request_v1', 'rally_study_zero_one.rs01_event_v1', 'rally_study_zero_one.study_enrollment_v1', 'rally_zero_one.deletion_request_v1', 'rally_zero_one.measurements_v1', 'rally_zero_one.pioneer_enrollment_v1']"}, {"fullname": "mozilla_schema_generator.main_ping", "modulename": "mozilla_schema_generator.main_ping", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.main_ping.MainPing", "modulename": "mozilla_schema_generator.main_ping", "qualname": "MainPing", "kind": "class", "doc": "

\n", "bases": "mozilla_schema_generator.common_ping.CommonPing"}, {"fullname": "mozilla_schema_generator.main_ping.MainPing.__init__", "modulename": "mozilla_schema_generator.main_ping", "qualname": "MainPing.__init__", "kind": "function", "doc": "

\n", "signature": "(**kwargs)"}, {"fullname": "mozilla_schema_generator.main_ping.MainPing.schema_url", "modulename": "mozilla_schema_generator.main_ping", "qualname": "MainPing.schema_url", "kind": "variable", "doc": "

\n", "default_value": "'https://raw.githubusercontent.com/mozilla-services/mozilla-pipeline-schemas/{branch}/schemas/telemetry/main/main.4.schema.json'"}, {"fullname": "mozilla_schema_generator.matcher", "modulename": "mozilla_schema_generator.matcher", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.__init__", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.__init__", "kind": "function", "doc": "

table_group: required, which table that group belongs in\ntype: optional, the type of the metrics

\n\n

All other fields are matched as exact matches,\nexcept for contains which checks that that value\nis in the associated array.

\n", "signature": "(match_obj: dict, *, _type=None, table_group=None)"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.table_group_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.table_group_key", "kind": "variable", "doc": "

\n", "default_value": "'table_group'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.type_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.type_key", "kind": "variable", "doc": "

\n", "default_value": "'type'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.contains_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.contains_key", "kind": "variable", "doc": "

\n", "default_value": "'contains'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.not_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.not_key", "kind": "variable", "doc": "

\n", "default_value": "'not'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.any_key", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.any_key", "kind": "variable", "doc": "

\n", "default_value": "'any'"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.keywords", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.keywords", "kind": "variable", "doc": "

\n", "default_value": "{'type', 'any', 'contains', 'not', 'table_group'}"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.table_group", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.table_group", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.type", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.type", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.matcher", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.matcher", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.get_table_group", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.get_table_group", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.matches", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.matches", "kind": "function", "doc": "

\n", "signature": "(self, probe: mozilla_schema_generator.probes.Probe) -> bool:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.matcher.Matcher.clone", "modulename": "mozilla_schema_generator.matcher", "qualname": "Matcher.clone", "kind": "function", "doc": "

\n", "signature": "(self, new_type=None, new_table_group=None):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes", "modulename": "mozilla_schema_generator.probes", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.__init__", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.__init__", "kind": "function", "doc": "

\n", "signature": "(identifier: str, definition: dict)"}, {"fullname": "mozilla_schema_generator.probes.Probe.type_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.type_key", "kind": "variable", "doc": "

\n", "default_value": "'type'"}, {"fullname": "mozilla_schema_generator.probes.Probe.name_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.name_key", "kind": "variable", "doc": "

\n", "default_value": "'name'"}, {"fullname": "mozilla_schema_generator.probes.Probe.history_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.history_key", "kind": "variable", "doc": "

\n", "default_value": "'history'"}, {"fullname": "mozilla_schema_generator.probes.Probe.in_source_key", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.in_source_key", "kind": "variable", "doc": "

\n", "default_value": "'in-source'"}, {"fullname": "mozilla_schema_generator.probes.Probe.id", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.id", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.type", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.type", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.name", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.name", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_type", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_type", "kind": "function", "doc": "

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_name", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_name", "kind": "function", "doc": "

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_description", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_description", "kind": "function", "doc": "

\n", "signature": "(self) -> str:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_last_change", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_last_change", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_first_added", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_first_added", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get_schema", "kind": "function", "doc": "

\n", "signature": "(self, addtlProps: Any) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.Probe.get", "modulename": "mozilla_schema_generator.probes", "qualname": "Probe.get", "kind": "function", "doc": "

\n", "signature": "(self, *k) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.MainProbe", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe", "kind": "class", "doc": "

\n", "bases": "Probe"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.__init__", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.__init__", "kind": "function", "doc": "

\n", "signature": "(identifier: str, definition: dict)"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.first_added_key", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.first_added_key", "kind": "variable", "doc": "

\n", "default_value": "'first_added'"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.histogram_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.histogram_schema", "kind": "variable", "doc": "

\n", "default_value": "{'type': 'string'}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.parent_processes", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.parent_processes", "kind": "variable", "doc": "

\n", "default_value": "{'main'}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.child_processes", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.child_processes", "kind": "variable", "doc": "

\n", "default_value": "{'extension', 'content', 'gpu', 'dynamic', 'socket'}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.processes_map", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.processes_map", "kind": "variable", "doc": "

\n", "default_value": "{'all_childs': {'extension', 'content', 'gpu', 'dynamic', 'socket'}, 'all_children': {'extension', 'content', 'gpu', 'dynamic', 'socket'}, 'all': {'content', 'gpu', 'extension', 'main', 'socket', 'dynamic'}}"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.get_first_added", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.get_first_added", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.get_last_change", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.get_last_change", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.MainProbe.get_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "MainProbe.get_schema", "kind": "function", "doc": "

\n", "signature": "(self, addtlProps: Any) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe", "kind": "class", "doc": "

\n", "bases": "Probe"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.__init__", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.__init__", "kind": "function", "doc": "

\n", "signature": "(identifier: str, definition: dict, *, pings: List[str] = None)"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.all_pings_keywords", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.all_pings_keywords", "kind": "variable", "doc": "

\n", "default_value": "('all-pings', 'all_pings')"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.first_added_key", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.first_added_key", "kind": "variable", "doc": "

\n", "default_value": "'first_added'"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.is_in_source", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.is_in_source", "kind": "function", "doc": "

\n", "signature": "(self) -> bool:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.get_first_added", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.get_first_added", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.get_last_change", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.get_last_change", "kind": "function", "doc": "

\n", "signature": "(self) -> datetime.datetime:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.probes.GleanProbe.get_schema", "modulename": "mozilla_schema_generator.probes", "qualname": "GleanProbe.get_schema", "kind": "function", "doc": "

\n", "signature": "(self, addtlProps: Any) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema", "modulename": "mozilla_schema_generator.schema", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.schema.SchemaException", "modulename": "mozilla_schema_generator.schema", "qualname": "SchemaException", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "builtins.Exception"}, {"fullname": "mozilla_schema_generator.schema.SchemaEncoder", "modulename": "mozilla_schema_generator.schema", "qualname": "SchemaEncoder", "kind": "class", "doc": "

Extensible JSON http://json.org encoder for Python data structures.

\n\n

Supports the following objects and types by default:

\n\n

+-------------------+---------------+\n| Python | JSON |\n+===================+===============+\n| dict | object |\n+-------------------+---------------+\n| list, tuple | array |\n+-------------------+---------------+\n| str | string |\n+-------------------+---------------+\n| int, float | number |\n+-------------------+---------------+\n| True | true |\n+-------------------+---------------+\n| False | false |\n+-------------------+---------------+\n| None | null |\n+-------------------+---------------+

\n\n

To extend this to recognize other objects, subclass and implement a\n.default() method with another method that returns a serializable\nobject for o if possible, otherwise it should call the superclass\nimplementation (to raise TypeError).

\n", "bases": "json.encoder.JSONEncoder"}, {"fullname": "mozilla_schema_generator.schema.SchemaEncoder.default", "modulename": "mozilla_schema_generator.schema", "qualname": "SchemaEncoder.default", "kind": "function", "doc": "

Implement this method in a subclass such that it returns\na serializable object for o, or calls the base implementation\n(to raise a TypeError).

\n\n

For example, to support arbitrary iterators, you could\nimplement default like this::

\n\n
def default(self, o):\n    try:\n        iterable = iter(o)\n    except TypeError:\n        pass\n    else:\n        return list(iterable)\n    # Let the base class default method raise the TypeError\n    return JSONEncoder.default(self, o)\n
\n", "signature": "(self, obj):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema", "kind": "class", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.schema.Schema.__init__", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.__init__", "kind": "function", "doc": "

\n", "signature": "(schema: dict)"}, {"fullname": "mozilla_schema_generator.schema.Schema.schema", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.schema", "kind": "variable", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.schema.Schema.set_schema_elem", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.set_schema_elem", "kind": "function", "doc": "

@param key: The key set\n@param elem: The value to set the key to\n@param propagate: If True, creates objects until it reaches the full key.\n If False, and the parent of the key is not in the\n schema, then the key will not be added.

\n", "signature": "(self, key: Iterable[str], elem: Any, *, propagate=True) -> dict:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.get", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.get", "kind": "function", "doc": "

\n", "signature": "(self, key: Iterable[str]) -> Any:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.get_size", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.get_size", "kind": "function", "doc": "

\n", "signature": "(self) -> int:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.clone", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.clone", "kind": "function", "doc": "

\n", "signature": "(self) -> mozilla_schema_generator.schema.Schema:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.delete_group_from_schema", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.delete_group_from_schema", "kind": "function", "doc": "

@param key: The key to remove\n@param propagate: If True, then removes any parents of the deleted key\n if they are now empty, i.e. there are no other\n properties.

\n", "signature": "(self, key: Iterable[str], *, propagate=True):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.schema.Schema.property_exists", "modulename": "mozilla_schema_generator.schema", "qualname": "Schema.property_exists", "kind": "function", "doc": "

@param key: The key to check for existence

\n", "signature": "(self, key: Iterable[str]) -> bool:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.subset_pings", "modulename": "mozilla_schema_generator.subset_pings", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.subset_pings.ADDITIONAL_METADATA_FIELDS", "modulename": "mozilla_schema_generator.subset_pings", "qualname": "ADDITIONAL_METADATA_FIELDS", "kind": "variable", "doc": "

\n", "default_value": "['client_id', 'clientId', 'client_info']"}, {"fullname": "mozilla_schema_generator.subset_pings.generate", "modulename": "mozilla_schema_generator.subset_pings", "qualname": "generate", "kind": "function", "doc": "

Read in pings from disk and split fields into new subset pings.

\n\n

If configured, also produce a remainder ping with all the fields that weren't moved.

\n", "signature": "(\tconfig_data,\tout_dir: pathlib.Path) -> Dict[str, Dict[str, Dict[str, Dict]]]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.utils", "modulename": "mozilla_schema_generator.utils", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.utils.prepend_properties", "modulename": "mozilla_schema_generator.utils", "qualname": "prepend_properties", "kind": "function", "doc": "

Add a \"properties\" before each element of key.\nThis allows the field to be retrieved in a JSON schema

\n\n

ex:

\n\n
>> key = (\"hello\", \"world\")\n>> _prepend_propertes(key)\n(\"properties\", \"hello\", \"properties\", \"world)\n
\n", "signature": "(key: Tuple[str]) -> Tuple[str]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery", "modulename": "mozilla_schema_generator.validate_bigquery", "kind": "module", "doc": "

\n"}, {"fullname": "mozilla_schema_generator.validate_bigquery.BASE_DIR", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "BASE_DIR", "kind": "variable", "doc": "

\n", "default_value": "PosixPath('/app')"}, {"fullname": "mozilla_schema_generator.validate_bigquery.compute_compact_columns", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "compute_compact_columns", "kind": "function", "doc": "

\n", "signature": "(document):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.check_evolution", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "check_evolution", "kind": "function", "doc": "

\n", "signature": "(base, head, verbose=False):", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.copy_schemas", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "copy_schemas", "kind": "function", "doc": "

Copy BigQuery schemas to a directory as an intermediary step for schema\nevolution checks.

\n", "signature": "(\thead: str,\trepository: pathlib.Path,\tartifact: pathlib.Path) -> pathlib.Path:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.checkout_copy_schemas_revisions", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "checkout_copy_schemas_revisions", "kind": "function", "doc": "

Checkout two revisions of the schema repository into the artifact\ndirectory. This returns paths to the head and the base directories.

\n", "signature": "(\thead: str,\tbase: str,\trepository: pathlib.Path,\tartifact: pathlib.Path) -> Tuple[pathlib.Path, pathlib.Path]:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.parse_incompatibility_allowlist", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "parse_incompatibility_allowlist", "kind": "function", "doc": "

\n", "signature": "(allowlist: pathlib.Path) -> list:", "funcdef": "def"}, {"fullname": "mozilla_schema_generator.validate_bigquery.validate", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "validate", "kind": "variable", "doc": "

Click command group.

\n", "default_value": "<Group validate>"}, {"fullname": "mozilla_schema_generator.validate_bigquery.local_validation", "modulename": "mozilla_schema_generator.validate_bigquery", "qualname": "local_validation", "kind": "variable", "doc": "

Validate schemas using a heuristic from the compact schemas.

\n", "default_value": "<Command local-validation>"}]; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough.