|
|
| (11 intermediate revisions by 2 users not shown) |
| Line 1: |
Line 1: |
| Balrog's Admin app provides an API that allows for retrieval and modification of Rules, Releases, and Permissions. This page documents all of the available endpoints, their parameters, and responses.
| | #REDIRECT [[Balrog]] |
| | |
| POST and PUT requests may submit parameters as multipart form data or json.
| |
| | |
| = Rules =
| |
| == /rules ==
| |
| === GET ===
| |
| Returns all of the Rules in Balrog's database inside of a JSON Object in the following format:
| |
| <pre>
| |
| {
| |
| "count": 2,
| |
| "rules": [
| |
| {
| |
| "rule_id": 1,
| |
| ...
| |
| },
| |
| {
| |
| "rule_id": 2,
| |
| ...
| |
| }
| |
| ]
| |
| }
| |
| </pre>
| |
| | |
| === POST ===
| |
| Creates a new rule with the provided values. The following parameters are supported:
| |
| * priority (required)
| |
| * backgroundRate (required)
| |
| * mapping
| |
| * alias
| |
| * product
| |
| * version
| |
| * buildID
| |
| * channel
| |
| * locale
| |
| * distribution
| |
| * buildTarget
| |
| * osVersion
| |
| * distVersion
| |
| * whitelist
| |
| * comment
| |
| * headerArchitecture
| |
| | |
| For detailed information on parameters see [[https://wiki.mozilla.org/Balrog#Rules | the Rule table documentation]].
| |
| | |
| == /rules/<id_or_alias> ==
| |
| === GET ===
| |
| Returns the entire rule identified by the id or alias given in JSON format. Eg:
| |
| <pre>
| |
| {
| |
| "rule_id": 3,
| |
| "product": "Firefox",
| |
| ...
| |
| }
| |
| </pre>
| |
| | |
| === POST ===
| |
| Modifies the rule identified by the id or alias given according to the parameters given. The following parameters are supported:
| |
| * data_version (required)
| |
| * priority
| |
| * backgroundRate
| |
| * mapping
| |
| * alias
| |
| * product
| |
| * version
| |
| * buildID
| |
| * channel
| |
| * locale
| |
| * distribution
| |
| * buildTarget
| |
| * osVersion
| |
| * distVersion
| |
| * whitelist
| |
| * comment
| |
| * headerArchitecture
| |
| | |
| === DELETE ===
| |
| Deletes the rule identified by the id or alias given. The following parameters are supported:
| |
| * data_version (required)
| |
| | |
| == /rules/<id_or_alias>/revisions ==
| |
| === GET ===
| |
| Returns previous versions of the rule identified by the id or alias given in a JSON Object in the following format:
| |
| <pre>
| |
| {
| |
| "count": 2,
| |
| "rules": [
| |
| {
| |
| "id": 1,
| |
| "change_id": 4,
| |
| "timestamp": 1451610061000,
| |
| "changed_by": "jane",
| |
| "product": "Firefox",
| |
| ...
| |
| },
| |
| {
| |
| "id": 1,
| |
| "change_id": 4,
| |
| "timestamp": 1451610061000,
| |
| "changed_by": "jane",
| |
| "product": "Firefox",
| |
| ...
| |
| }
| |
| ]
| |
| </pre>
| |
| | |
| === POST ===
| |
| Reverts the rule identified by the given id (alias is not supported here) to the version identified by the change_id given in the request body. The request body <em>must</em> be a JSON object containing a "change_id" key.
| |
| | |
| == /rules/columns/<column> ==
| |
| === GET ===
| |
| Returns a JSON Object containing the unique values for the given column. For example, /rules/columns/product would return something like:
| |
| <pre>
| |
| {
| |
| "count": 10,
| |
| "product": [
| |
| "Firefox",
| |
| "Graphene",
| |
| "Thunderbird",
| |
| "MetroFirefox",
| |
| "Horizon",
| |
| "B2G",
| |
| "GMP",
| |
| "Fennec",
| |
| "SystemAddons",
| |
| "B2GDroid"
| |
| ]
| |
| }
| |
| </pre>
| |
| | |
| == /releases ==
| |
| === GET ===
| |
| Returns a JSON Object containing metadata about Releases in Balrog's database. Due to its size, the actual Release "blob" is never returned from this endpoint. There are a few query arguments that affect its response.
| |
| | |
| If no arguments are provided, it returns information about all of the Releases in the database in the following format:
| |
| <pre>
| |
| {
| |
| "releases": [
| |
| {
| |
| "name": "Firefox-34.0-build1",
| |
| "product": "Firefox",
| |
| "data_version": 4,
| |
| "read_only": null
| |
| },
| |
| {
| |
| "name": "Fennec-34.0-build1",
| |
| "product": "Fennec",
| |
| "data_version": 43,
| |
| "read_only": true
| |
| },
| |
| ...
| |
| ]
| |
| }
| |
| </pre>
| |
| | |
| If "product" is passed, only Releases with the given product name will be returned.
| |
| | |
| If "name_prefix" is passed, only Releases whose name starts with the given prefix will be returned.
| |
| | |
| If "names_only" is set to true, the response changes format and provides a list of all of the Release names in the database:
| |
| <pre>
| |
| {
| |
| "names": [
| |
| "Firefox-34.0-build1",
| |
| "Fennec-34.0-build1",
| |
| ...
| |
| ]
| |
| }
| |
| </pre>
| |