REST API Reference

Authentication

Fatbuildrweb supports optional authentication, depending on the loaded policy. The authentication is based on JWT tokens. Users can obtain a valid token by running this command:

$ fatbuildrctl tokens generate
Refer to fatbuildrctl manpage tokens section for more details.

The tokens must be transmitted to the server as a Bearer token through the Authorization HTTP request header, as defined in RFC6750.

Most endpoints are associated to a permission action as referenced in the sections below. The policy defines which roles (including the anonymous role) are granted to perform these actions.

Fatbuildrweb determines the user encoded in the JWT token provided the request headers. Then, it searches for the roles associated this user. If the request is sent without token, the anonymous role is selected. Then, Fatbuildrweb checks one of the roles is permitted to perform the permission action associated to the endpoint. If the user is not permitted for this permission action, the server responds with HTTP/403 Forbidden code.

API Endpoints

Utilities

Software Version

GET /version

No permission action required.

Returns the version of Fatbuildr server.

Responses
Code Description Content Type Data Type

200

Operation successful

text/plain

string

Examples

Request:

$ curl -X GET http://localhost:5000/version

Response:

Fatbuildr v2.1.0

Instances

List of Available Instances

GET /instances.json

No permission action required.

Returns the list of available instances on Fatbuildr server.

This endpoint is not available when Fatbuildrweb component runs in mono-instance mode.
Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[Instance object]

Example

Request:

$ curl -X GET http://localhost:5000/instances.json

Response:

[
  {
    "id": "default",
    "name": "Default Fatbuildr Instance",
    "userid": "Maintainers <maintainers@example.org>"
  },
  {
    "id": "prod",
    "name": "Production Fatbuildr Instance",
    "userid": "Maintainers <maintainers@example.org>"
  },
]
All the following API endpoints are composed of the instance path parameter as they manipulate data from a specific instance. However, this instance path attribute is not required when Fatbuildrweb component runs in mono-instance mode. In this mode, all the following endpoints must be considered without the instance path attribute.

Instance Information

GET /{instance}/instance.json

Permission action: view-registry

Returns instance information.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

Instance object

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/instance.json

Response:

{
  "id": "default",
  "name": "Default Fatbuildr Instance",
  "userid": "Maintainers <maintainers@example.org>"
}

Pipelines

Pipelines Architectures

GET /{instance}/pipelines/architectures.json

Permission action: view-pipeline

Returns the list of CPU architectures supported in the instance pipelines.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[string]

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/pipelines/architectures.json

Response:

["x86_64","arm64"]

Pipelines Formats

GET /{instance}/pipelines/formats.json

Permission action: view-pipeline

Returns the artifacts formats defined in instance pipelines with their distributions and associated build environments and derivatives.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Query Parameters
Name Description Type Required Example

format

Name of artifact format, to filter responses for this particular format.

string

deb or rpm

distribution

Name of registry distribution, to filter responses for this particular distribution.

string

bullseye or el8

derivative

Name of registry distribution derivative, to filter responses for this particular distribution derivative.

string

main

environment

Name of artifact build environment, to filter responses for this particular build environment.

string

bullseye or rocky-8

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

PipelineFormat object

403

Forbidden

application/json

Error object

404

Instance, derivative or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/pipelines/formats.json

Response:

{
  "deb": [
    {
      "derivatives": [
        "main",
        "foox"
      ],
      "distribution": "bookworm",
      "environment": "bookworm"
    },
    {
      "derivatives": [
        "main",
        "foox"
      ],
      "distribution": "sid",
      "environment": "sid"
    }
  ],
  "osi": [
    {
      "derivatives": [
        "main"
      ],
      "distribution": "containers",
      "environment": null
    }
  ],
  "rpm": [
    {
      "derivatives": [
        "main",
        "foox"
      ],
      "distribution": "el8",
      "environment": "rocky-8"
    }
  ]
}

Request:

$ curl -X GET http://localhost:5000/default/pipelines/formats.json?format=rpm

Response:

{
  "rpm": [
    {
      "derivatives": [
        "main",
        "foox"
      ],
      "distribution": "el8",
      "environment": "rocky-8"
    }
  ]
}

Request:

$ curl -X GET http://localhost:5000/default/pipelines/formats.json?distribution=el8

Response:

{
  "rpm": [
    {
      "derivatives": [
        "main",
        "foox"
      ],
      "distribution": "el8",
      "environment": "rocky-8"
    }
  ]
}

Registries

Registry Formats

GET /{instance}/registry.json

Permission action: view-registry

Returns the list of artifacts formats available in a registry.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[string]

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/registry.json

Response:

["rpm","deb"]

Format Distributions

GET /{instance}/registry/{format}.json

Permission action: view-registry

Returns the list of available distributions in a registry for a given format.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

format

Artifact format name

string

deb or rpm

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[string]

403

Forbidden

application/json

Error object

404

Instance, JWT signing key not found or format not supported by the instance

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/registry/rpm.json

Response:

["el8"]

Distribution Derivatives

GET /{instance}/registry/{format}/{distribution}.json

Permission action: view-registry

Returns the list of derivatives available for the distribution.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

format

Artifact format name

string

deb or rpm

distribution

Distribution name

string

bullseye or el8

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[string]

403

Forbidden

application/json

Error object

404

Instance, JWT signing key not found, format not supported by the instance or distribution not found in registry.

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/registry/deb/bullseye.json

Response:

[
  "main",
  "foox"
]

Derivative Artifacts

GET /{instance}/registry/{format}/{distribution}/{derivative}.json

Permission action: view-registry

Returns the list of artifacts in a distribution derivative.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

format

Artifact format name

string

deb or rpm

distribution

Distribution name

string

bullseye or el8

derivative

Name of distribution derivative

string

main

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[Artifact object]

403

Forbidden

application/json

Error object

404

Instance, JWT signing key not found, format not supported by the instance, distribution or derivative not found in registry.

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/registry/deb/bullseye/main.json

Response:

[
  {
    "architecture": "noarch",
    "name": "fatbuildr",
    "size": 580300,
    "version": "0.1-1.deb11"
  },
  {
    "architecture": "noarch",
    "name": "fatbuildr-common",
    "size": 8824,
    "version": "0.1-1.deb11"
  },
  {
    "architecture": "x86_64",
    "name": "fatbuildr-wrappers",
    "size": 36364,
    "version": "0.1-1.deb11"
  },
  {
    "architecture": "x86_64",
    "name": "fatbuildr-wrappers-dbgsym",
    "size": 6320,
    "version": "0.1-1.deb11"
  },
  {
    "architecture": "src",
    "name": "fatbuildr",
    "size": 0,
    "version": "0.1-1.deb11"
  }
]

Artifact Information

GET /{instance}/registry/{format}/{distribution}/{derivative}/{architecture}/{artifact}.json

Permission action: view-registry

Returns full description of an artifact in registry.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

format

Artifact format name

string

deb or rpm

distribution

Dis$tribution name

string

bullseye or el8

derivative

Name of distribution derivative

string

main

architecture

Name of CPU architecture of the artifact. The special value src refers to source artifact used as input to produce binary artifacts. The special value noarch refers to architecture independant artifacts.

string

x86_64, src or noarch

artifact

Name of the artifact

string

fatbuildr

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

ArtifactDescription

403

Forbidden

application/json

Error object

404

Instance, JWT signing key not found, format not supported by the instance, distribution, derivative, architecture or artifact not found in registry.

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/registry/deb/bullseye/main/src/fatbuildr.json

Response:

{
  "artifact": "fatbuildr",
  "binaries": [
    {
      "architecture": "noarch",
      "name": "fatbuildr",
      "size": 587200,
      "version": "0.1-2.deb11"
    },
    {
      "architecture": "noarch",
      "name": "fatbuildr-common",
      "size": 10792,
      "version": "0.1-2.deb11"
    },
    {
      "architecture": "x86_64",
      "name": "fatbuildr-wrappers",
      "size": 13012,
      "version": "0.1-2.deb11"
    },
    {
      "architecture": "x86_64",
      "name": "fatbuildr-wrappers-dbgsym",
      "size": 5988,
      "version": "0.1-2.deb11"
    }
  ],
  "changelog": [
    {
      "author": "John Doe <john@doe.org>",
      "changes": [
        "Another Fatbuildr test build"
      ],
      "date": 1655841969,
      "version": "0.1-2.deb11"
    },
    {
      "author": "John Doe <john@doe.org>",
      "changes": [
        "Fatbuildr test build"
      ],
      "date": 1655838256,
      "version": "0.1-1.deb11"
    }
  ]
}

Request:

$ curl -X GET http://localhost:5000/default/registry/deb/bullseye/main/x86_64/fatbuildr-wrappers.json

Response:

{
  "artifact": "fatbuildr-wrappers",
  "changelog": [
    {
      "author": "John Doe <john@doe.org>",
      "changes": [
        "Another Fatbuildr test build"
      ],
      "date": 1655841969,
      "version": "0.1-2.deb11"
    },
    {
      "author": "John Doe <john@doe.org>",
      "changes": [
        "Fatbuildr test build"
      ],
      "date": 1655838256,
      "version": "0.1-1.deb11"
    }
  ],
  "source": {
    "architecture": "src",
    "name": "fatbuildr",
    "size": 0,
    "version": "0.1-2.deb11"
  },
  "content": [
    {
      "path": "/usr",
      "size": 0,
      "type": "d"
    },
    {
      "path": "/usr/libexec",
      "size": 0,
      "type": "d"
    },
    {
      "path": "/usr/libexec/fatbuildr",
      "size": 0,
      "type": "d"
    },
    {
      "path": "/usr/libexec/fatbuildr/u-mkosi",
      "size": 14504,
      "type": "f"
    },
    {
      "path": "/usr/libexec/fatbuildr/u-nspawn",
      "size": 14504,
      "type": "f"
    },
    {
      "path": "/usr/share",
      "size": 0,
      "type": "d"
    },
    {
      "path": "/usr/share/doc",
      "size": 0,
      "type": "d"
    },
    {
      "path": "/usr/share/doc/fatbuildr-wrappers",
      "size": 0,
      "type": "d"
    },
    {
      "path": "/usr/share/doc/fatbuildr-wrappers/changelog.Debian.gz",
      "size": 271,
      "type": "f"
    },
    {
      "path": "/usr/share/doc/fatbuildr-wrappers/changelog.gz",
      "size": 6897,
      "type": "f"
    },
    {
      "path": "/usr/share/doc/fatbuildr-wrappers/copyright",
      "size": 53,
      "type": "f"
    }
  ]
}

Artifact Deletion

DELETE /{instance}/registry/{format}/{distribution}/{derivative}/{architecture}/{artifact}.json

Permission action: edit-registry

Delete an artifact from registry.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

format

Artifact format name

string

deb or rpm

distribution

Dis$tribution name

string

bullseye or el8

derivative

Name of distribution derivative

string

main

architecture

Name of CPU architecture of the artifact. The special value src refers to source artifact used as input to produce binary artifacts. The special value noarch refers to architecture independant artifacts.

string

x86_64, src or noarch

artifact

Name of the artifact

string

fatbuildr

Query Parameters
Name Description Type Required Example

version

Version of the artifact.

string

1.2.3-1

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

SubmittedTask

403

Forbidden

application/json

Error object

404

Instance, JWT signing key not found, format not supported by the instance, distribution, derivative, architecture or artifact not found in registry.

application/json

Error object

Examples

Request:

$ curl -X DELETE http://localhost:5000/default/registry/deb/bullseye/main/src/fatbuildr.json?version=2.0.1

Response:

{
  "task": "ef6176ad-9489-449a-804e-77370fee2540"
}

GET /{instance}/search.json

Permission action: view-registry

Search for artifacts in instance registries.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Query Parameters
Name Description Type Required Example

artifact

Part of artifact name to search. All artifacts whose name contains this parameter are selected in results.

string

fatbuildr

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

ArtifactSearchResult

400

Missing artifact query parameter

text/html

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/search.json?artifact=fatbuildr

Response:

{
  "deb": {
    "bullseye": {
      "main": [
        {
          "architecture": "noarch",
          "name": "fatbuildr",
          "size": 587200,
          "version": "0.1-1.deb11"
        },
        {
          "architecture": "noarch",
          "name": "fatbuildr-common",
          "size": 10792,
          "version": "0.1-1.deb11"
        },
        {
          "architecture": "x86_64",
          "name": "fatbuildr-wrappers",
          "size": 13012,
          "version": "0.1-1.deb11"
        },
        {
          "architecture": "x86_64",
          "name": "fatbuildr-wrappers-dbgsym",
          "size": 5988,
          "version": "0.1-1.deb11"
        },
        {
          "architecture": "src",
          "name": "fatbuildr",
          "size": 0,
          "version": "0.1-1.deb11"
        }
      ]
    }
  },
  "rpm": {
    "el8": {
      "main": [
        {
          "architecture": "noarch",
          "name": "fatbuildr",
          "size": 464556,
          "version": "0.1-1.el8"
        },
        {
          "architecture": "noarch",
          "name": "fatbuildr-common",
          "size": 8560,
          "version": "0.1-1.el8"
        },
        {
          "architecture": "x86_64",
          "name": "fatbuildr-wrappers",
          "size": 12748,
          "version": "0.1-1.el8"
        },
        {
          "architecture": "x86_64",
          "name": "fatbuildr-wrappers-dbgsym",
          "size": 9748,
          "version": "0.1-1.el8"
        },
        {
          "architecture": "src",
          "name": "fatbuildr",
          "size": 2166701,
          "version": "0.1-1.el8"
        }
      ]
    }
  }
}

Tasks

Submit Build Task

POST /{instance}/build

Permission action: build

Submit artifact build task in queue.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Consumes
Content Type Data Type

multipart/form-data

BuildSubmission object

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

SubmittedTask

400

Missing form parameter

text/html

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X POST \
  -F "format=deb" \
  -F "distribution=bullseye" \
  -F "architectures=x84_64" \
  -F "derivative=main" \
  -F "artifact=fatbuildr" \
  -F "user_name=John Doe" \
  -F "user_email=john.doe@example.org" \
  -F "message=Test new awesome feature" \
  -F "tarball=@artifact.tar.xz" \
  http://localhost:5000/default/build

Response:

{
  "task": "ef6176ad-9489-449a-804e-77370fee2540"
}

Running Task

GET /{instance}/running.json

Permission action: view-task

Returns information about the running task.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

Task object or null

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/running.json

Response:

{
  "architectures": [
    "x86_64"
  ],
  "archives": [
    {
      "id": "fatbuildr",
      "path": "/var/cache/fatbuildr/default/fatbuildr/v1.1.0.tar.gz"
    },
    {
      "id": "bootstrap",
      "path": "/var/cache/fatbuildr/default/fatbuildr/bootstrap-5.2.3-dist.zip"
    }
  ],
  "artifact": "fatbuildr",
  "derivative": "main",
  "distribution": "bullseye",
  "email": "john.doe@example.org",
  "format": "deb",
  "id": "c8c9935e-44c9-48de-a318-b6060c08b8c8",
  "io": {
    "console": "/var/lib/fatbuildr/workspaces/default/c8c9935e-44c9-48de-a318-b6060c08b8c8/console.sock",
    "interactive": null,
    "journal": {
      "path": "/var/lib/fatbuildr/workspaces/default/c8c9935e-44c9-48de-a318-b6060c08b8c8/task.journal"
    }
  },
  "message": "Test of new feature",
  "name": "artifact build",
  "place": "/var/lib/fatbuildr/workspaces/default/c8c9935e-44c9-48de-a318-b6060c08b8c8",
  "state": "running",
  "submission": 1656074753,
  "user": "John Doe"
}

Pending Tasks

GET /{instance}/queue.json

Permission action: view-task

Returns list of pending tasks.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

array[Task object]

403

Forbidden

application/json

Error object

404

Instance or JWT signing key not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/queue.json

Response:

[
  {
    "architectures": [
      "x86_64"
    ],
    "archives": [],
    "artifact": "fatbuildr",
    "derivative": "main",
    "distribution": "bullseye",
    "email": "john.doe@example.org",
    "format": "deb",
    "id": "604a1348-dd3a-4082-b78d-78563c728bef",
    "io": {
      "console": "/var/lib/fatbuildr/workspaces/default/604a1348-dd3a-4082-b78d-78563c728bef/console.sock",
      "interactive": null,
      "journal": {
        "path": "/var/lib/fatbuildr/workspaces/default/604a1348-dd3a-4082-b78d-78563c728bef/task.journal"
      }
    },
    "message": "Test of new feature on Debian bullseye",
    "name": "artifact build",
    "place": "/var/lib/fatbuildr/workspaces/default/604a1348-dd3a-4082-b78d-78563c728bef",
    "state": "pending",
    "submission": 1656075042,
    "user": "John Doe"
  },
  {
    "architectures": [
      "x86_64"
    ],
    "archives": [],
    "artifact": "fatbuildr",
    "derivative": "main",
    "distribution": "bookworm",
    "email": "john.doe@example.org",
    "format": "deb",
    "id": "ace984e3-4d5b-4aa1-a2ba-5997ea6ae7e6",
    "io": {
      "console": "/var/lib/fatbuildr/workspaces/default/ace984e3-4d5b-4aa1-a2ba-5997ea6ae7e6/console.sock",
      "interactive": null,
      "journal": {
        "path": "/var/lib/fatbuildr/workspaces/default/ace984e3-4d5b-4aa1-a2ba-5997ea6ae7e6/task.journal"
      }
    },
    "message": "Test of new feature on Debian bookworm",
    "name": "artifact build",
    "place": "/var/lib/fatbuildr/workspaces/default/ace984e3-4d5b-4aa1-a2ba-5997ea6ae7e6",
    "state": "pending",
    "submission": 1656075042,
    "user": "John Doe"
  }
]

Task Information

GET /{instance}/tasks/{task}.json

Permission action: view-task

Returns information about an archived task.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

task

Task UUID

uuid

Responses
Code Description Content Type Data Type

200

Operation successful

application/json

Task object or null

403

Forbidden

application/json

Error object

404

Instance, JWT signing key or task not found

application/json

Error object

Examples

Request:

$ curl -X GET  http://localhost:5000/default/tasks/c8c9935e-44c9-48de-a318-b6060c08b8c8.json

Response:

{
  "architectures": [
    "x86_64"
  ],
  "archives": [
    {
      "id": "fatbuildr",
      "path": "/var/cache/fatbuildr/default/fatbuildr/v1.1.0.tar.gz"
    },
    {
      "id": "bootstrap",
      "path": "/var/cache/fatbuildr/default/fatbuildr/bootstrap-5.2.3-dist.zip"
    }
  ],
  "artifact": "fatbuildr",
  "derivative": "main",
  "distribution": "bullseye",
  "email": "john.doe@example.org",
  "format": "deb",
  "id": "c8c9935e-44c9-48de-a318-b6060c08b8c8",
  "io": {
    "console": "/var/lib/fatbuildr/workspaces/default/c8c9935e-44c9-48de-a318-b6060c08b8c8/console.sock",
    "interactive": null,
    "journal": {
      "path": "/var/lib/fatbuildr/workspaces/default/c8c9935e-44c9-48de-a318-b6060c08b8c8/task.journal"
    }
  },
  "message": "Test of new feature",
  "name": "artifact build",
  "place": "/var/lib/fatbuildr/workspaces/default/c8c9935e-44c9-48de-a318-b6060c08b8c8",
  "state": "finished",
  "submission": 1656074753,
  "user": "John Doe"
}

Task Journal

GET /{instance}/watch/{task}.journal

Permission action: view-task

Returns the binary journal of either running or archived task.

The response is a binary file encoded with Fatbuildr specific ConsoleMessage protocol. This is supposed to be consumed by fatbuildrctl watch command only.
When the task is running, the output is streamed until the task is over. In this case, the duration of the response might be significant.
Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

task

Task UUID

uuid

Responses
Code Description Content Type Data Type

200

Operation successful

application/octet-stream

file

403

Forbidden

application/json

Error object

404

Instance, JWT signing key or task not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/watch/c8c9935e-44c9-48de-a318-b6060c08b8c8.journal \
  --output task.journal

Response:

$ file task.journal
task.journal: data

Keyring

Keyring Armored Public Key

GET /{instance}/keyring.asc

Permission action: view-keyring

Download instance keyring public key in armored format.

Path Parameters
Name Description Type Example

instance

Name of Fatbuildr instance

string

prod or default

Responses
Code Description Content Type Data Type

200

Operation successful

text/plain

string

403

Forbidden

application/json

Error object

404

Instance, JWT signing key or keyring not found

application/json

Error object

Examples

Request:

$ curl -X GET http://localhost:5000/default/keyring.asc

Response:

-----BEGIN PGP PUBLIC KEY BLOCK-----
…
-----END PGP PUBLIC KEY BLOCK-----

Objects

Instance

Properties:

Name Description Required Type

id

Instance identifier

string

name

Full name of the instance

string

userid

The user identifier of instance signing keyring

string

PipelineFormat

Additional Properties type: array[PipelineFormatItem object]

PipelineFormatItem

Properties:

Name Description Required Type

distribution

Name of registry distribution

string

environment

Name of build environment

string

derivatives

List of derivatives available for the associated registry distribution

array[string]

ArtifactDescription

Properties:

Name Description Required Type

name

Name of the artifact

string

binaries

Corresponding list of produced binary artifacts (only for source artifact).

array[Artifact object]

source

Corresponding original source artifact (only for binary artifact).

Artifact object

changelog

List of artifact changelog entries

array[ChangelogEntry object]

content

List of artifact content

array[ArtifactContent object]

Artifact

Properties:

Name Description Required Type

architecture

Name of CPU architecture of the artifact

string

name

Name of artifact

string

version

Version number of the artifact

string

size

Size of the artifact in bytes

integer

ArtifactContent

Properties:

Name Description Required Type

path

Path to file in artifact

string

type

File type encoded as a single character (f for regular file, d for directory, l for symbolic link)

string

size

File size in bytes

integer

ChangelogEntry

Properties:

Name Description Required Type

author

Artifact build author with name and email

string

changes

List of changes with the build

array[string]

date

Timestamp since epoch of the build

integer

version

Version number of the artifact

string

ArtifactSearchResult

Additional Properties type: ArtifactFormatSearchResult object

ArtifactFormatSearchResult

Additional Properties type: ArtifactDistributionSearchResult object

ArtifactDistributionSearchResult

Additional Properties type: ArtifactDerivativeSearchResult object

ArtifactDerivativeSearchResult

Additional Properties type: array[Artifact object]

BuildSubmission

Additional Properties type: array[Artifact object]

Properties:

Name Description Required Type

architectures

Comma-separated list of targeted CPU architectures

string

artifact

Name of artifact

string

derivative

Distribution derivative name

string

distribution

Distribution name

array[string]

format

Artifact format

string

message

Build description integrated in changelog entry

string

source/$id

Optional archive of artifact sources for identifier $id. This option is used for unreleased software.

It is possible to send multiple source archives with different source identifiers in the same build request.

file

tarball

Tarball with artifact definition files

file

user_name

User name

string

user_email

User email address

string

SourceArchive

Properties:

Name Description Required Type

id

Artifact source identifier

string

path

Absolute path of artifact source archive

string

SubmittedTask

Properties:

Name Description Required Type

task

Submitted task UUID

uuid

Task

Properties:

Name Description Required Type

architecture

Build environment CPU architecture (only for image build environment creation and image build environment update tasks)

string

architectures

Build targeted CPU architectures (only for artifact build tasks)

array[string]

archives

List of artifact source archives used for build (only for artifact build tasks)

array[SourceArchive object]

artifact

Artifact name (only for artifact build and artifact deletion tasks)

string (for artifact build) or Artifact object (for artifact deletion task)

derivative

Distribution derivative name (only for artifact build tasks)

string

distribution

Distribution name (only for artifact build tasks)

string

duration

Keyring renewal duration time (only for keyring renewal tasks)

string

email

User email address (only for artifact build tasks)

string

environment

Build environment name (only for image build environment creation and image build environment update tasks)

string

force

Force image creation when already existing (only for image creation tasks)

boolean

format

Artifact format (only for artifact build, image creation, image update, image build environment creation and image build environment update tasks)

string

id

Submitted task UUID

uuid

io

Task IO channels

TaskIO object

message

Build description integrated in changelog entry (only for artifact build tasks)

string

name

Task type name

string

place

Absolute path to task running directory

string

state

Current status of task

string

submission

Timestamp since epoch of task submission

integer

user

User name (only for artifact build tasks)

string

TaskIO

Properties:

Name Description Required Type

console

Absolute path to console Unix socket

string

interactive

Indicates if task is in interactive mode

boolean

journal

Task journal object

TaskIOJournal object

TaskIOJournal

Properties:

Name Description Required Type

path

Absolute path to task binary journal file

string

Error

Properties:

Name Description Required Type

error

Error message

string