Eventline is now open source and available on GitHub !

If you are still using the old Eventline platform, contact us to migrate to the new service, and head to the new documentation website for more information.

Data

Data format

Unless mentioned otherwise, requests and responses contain data formatted using JSON as described by RFC 8259 .

Note that as mandated by RFC 8259, JSON documents must be encoded used UTF-8 and must not start with a BOM (Byte Order Mark).

Common data types

Errors

Error objects contain the following fields:

error (string)
A human-readable description of the error.
code (string)
An error code identifying the precise reason which caused the error.
data (any)
A value, usually an object, containing additional data related to the error (optional).

Example:

{
  "error": "route not found",
  "code": "route_not_found",
  "data": {
    "target": "\/v0\/foo"
  }
}

Identifiers

Most elements in Eventline are referenced by their unique identifier. Identifiers are KSUID. They are represented in JSON by strings containing the textual representation of the KSUID, e.g. "23BUGaDgMUxucZnXMzyUEGRcujl".

Names

Names are used as human-readable identifiers for various elements.

Names must only contain lower case alphanumeric characters, dash characters (’-’) or underscore characters (’_’); they must also start an alphanumeric character. For example, “build-archive” and “run_http_test_42” are valid names; “-register” and “Send Notifications” are not. Additionally, names must contain at least one character, and must not contain more than 100 characters.

Dates

Dates are represented as JSON strings containing the RFC 3339 representation of the date and time.

For example, "2021-10-15T15:07:39Z" is a valid date.

Eventline will always represent dates using Coordinated Universal Time (UTC). It will however accept non-UTC dates and will convert them to UTC.

For example, "2021-10-15T17:07:39+02:00" will be accepted and interpreted as "2021-10-15T15:07:39Z".

Pages

The response to a paginated query is a page, represented by a JSON object containing the following fields:

elements (array)
The list of elements contained in the page.
previous (object)
The cursor corresponding to the previous page if there is one (optional).
next (object)
The cursor corresponding to the next page if there is one (optional).

Example:

{
  "elements": [
    {
      "id": "22bQgVViNfTUAaToCrk9fMXPGsj",
      "org_id": "1zY1y6offsPNwvhFxgpteVO0GvM"
      "name": "project-1",
    },
    {
      "id": "23E0dGLAnH943qkNMvMEZeFsWya",
      "org_id": "1zY1y6offsPNwvhFxgpteVO0GvM"
      "name": "project-2",
    }
  ],
  "next": {
    "after": "MjNFMGRHTEFuSDk0M3FrTk12TUVaZUZzV3lh",
    "size": 2,
    "sort": "id",
    "order": "asc"
  }
}

Organizations

Organizations are represented as JSON objects containing the following fields:

name (string)
The name of the organization.
address (string)
The registered address of the organization.
postal_code (string)
The postal code of the registered address of the organization.
city (string)
The city of the registered address of the organization.
country (string)
The country of the registered address of the organization.
contact_email_address (string)
The email address used as primary contact by the organization.
non_essential_mail_opt_in (boolean)
A flag indicating whether the organization accepts to receive non-essential emails from Exograd or not (optional, default is false). See our privacy policy for more information.
vat_id_number (string)
The VAT identification number (optional).

Accounts

Accounts are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the account.
org_id (identifier)
The identifier of the organization of the account.
creation_time (date)
The date the account was created.
disabled (boolean)
A flag indicating whether the account is disabled or not (optional, default is false).
email_address (string)
The email address of the account.
name (string)
The full name of the user the account belongs to (optional). The name must contain between 1 and 50 characters.
role (string)
The role of the account, either user or admin.
last_login_time (date)
The date of the last time someone used this account to authenticate on the Eventline platform (optional).
last_project_id (identifier)
The identifier of the last project selected as current project for this account (optional).
settings (object)
An object containing settings used by the account.

Account settings

Account settings are represented as JSON objects containing the following fields:

date_format (string)
The way dates are formatted on the website, either absolute or relative (optional, default is relative).

Projects

Projets are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the project.
org_id (identifier)
The identifier of the organization of the project.
name (name)
The name of the project.

Resources

Resources are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the resource.
org_id (identifier)
The identifier of the organization of the resource.
project_id (identifier)
The identifier of the project of the resource.
creation_time (date)
The date the resource was created.
update_time (date)
The date the resource was last updated.
disabled (boolean)
A flag indicating whether the resource is disabled (optional, default is false).
spec (object)
A copy of the entire resource file as a JSON object. See the resource documentation for more information.

Pipelines

Pipelines are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the pipeline.
name (name)
The name of the pipeline.
org_id (identifier)
The identifier of the organization of the pipeline.
project_id (identifier)
The identifier of the project of the pipeline.
creation_time (date)
The date the pipeline was created.
pipeline_id (identifier)
The identifier of the pipeline resource (optional). The field will not be present if the resource was deleted after the pipeline was created.
trigger_id (identifier)
The identifier of the trigger at the origin of the event (optional). Only present if the pipeline was created following the activation of a trigger.
command_id (identifier)
The identifier of the command at the origin of the event (optional). Only present if the pipeline was created following the execution of a command.
event_id (identifier)
The identifier of the event associated with the pipeline.
event_time (date)
The date of the event associated with the pipeline.
concurrent (boolean)
A flag indicating whether the pipeline can be executed concurrently with other pipelines based on the same pipeline resource (optional, default is false).
status (string)
The current status of the pipeline, either created, started, aborted, successful or failed. See the pipeline execution documentation for more information.
start_time (date)
The date the first task in the pipeline started (optional).
end_time (date)
The date the last task in the pipeline finished (optional).

Command executions

Command executions are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the command execution.
org_id (identifier)
The identifier of the organization of the command execution.
project_id (identifier)
The identifier of the project of the command execution.
executor_id (identifier)
The identifier of the account which executed the command.
execution_time (date)
The date the command was executed.
command_id (identifier)
The identifier of the resource of the command which was executed.
parameters (object)
The set of parameters passed to the command.
event_id (identifier)
The identifier of the event associated with the command execution.
pipeline_ids (array)
The list of the identifier of the pipelines which were created.

Tasks

Tasks are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the task.
org_id (identifier)
The identifier of the organization of the task.
project_id (identifier)
The identifier of the project of the task.
pipeline_id (identifier)
The identifier of the pipeline containing the task.
pipeline_task (object)
A copy of the definition of the task in the pipeline resource as a JSON object. See the pipeline documentation for more information.
task_id (identifier)
The identifier of the task resource (optional). The field will not be present if the resource was deleted after the task was created.
task_identities (array)
The list containing the name of all the identities associated with the task.
spec (object)
A copy of the entire task resource as a JSON object. See the resource documentation for more information.
command_parameters (array)
If the task was created by the execution of a command, the list of parameters passed to the command (optional). See the command documentation for more information.
instance_id (integer)
The instance number of the task, starting at 1. See the nb_instances parameter in pipeline data.
status (string)
The current status of the task, either created, started, aborted, successful or failed. See the task execution documentation for more information.
start_time (date)
The date the task execution started (optional).
end_time (date)
The date the task execution finished (optional).
dependencies (array)
The list containing the identifier of all the tasks in the same pipeline which must be executed before this task can be started.
failure_message (string)
The message describing the last error encountered by the task (optional).
retry (integer)
If the task was defined as retriable in the pipeline task (see the nb_retries parameter in pipeline data, the number of times the task was retried (optional).

Example:

{
  "id": "23Dxv2aT3IUFkHBuoGtS4cyHGRj",
  "org_id": "1zY1y6offsPNwvhFxgpteVO0GvM",
  "project_id": "22bQgVViNfTUAaToCrk9fMXPGsj",
  "pipeline_id": "23Dxv2vkB0edTYWm54NpXuaYamg",
  "pipeline_task": {
    "name": "reporting",
    "task": "send-report"
  },
  "task_id": "22g5sFTXrS9xsCFgSUvflo7C73r",
  "task_identities": [
    "aws-prod"
  ],
  "spec": {
    "type": "task",
    "version": 1,
    "name": "print-environment",
    "data": {
      "runtime": {
        "name": "container",
        "parameters": {
          "image": "ubuntu:21.04"
        }
      },
      "identities": [
        "github-oauth2",
        "aws-test"
      ],
      "steps": [
        {
          "command": "./send-report.sh"
        }
      ]
    }
  },
  "command_parameters": [
    {
      "name": "title",
      "type": "string"
    },
  ],
  "instance_id": 1,
  "status": "successful"
  "start_time": "2022-01-04T07:50:28Z",
  "end_time": "2022-01-04T07:51:30Z",
  "dependencies": []
}

Events

Events are represented as JSON objects containing the following fields:

id (identifier)
The identifier of the event.
org_id (identifier)
The identifier of the organization the event is part of.
trigger_id (identifier)
The identifier of the trigger at the origin of the event (optional). Only present if the event was created following the activation of a trigger.
command_id (identifier)
The identifier of the command at the origin of the event (optional). Only present if the event was created following the execution of a command.
creation_time (identifier)
The date the event was created.
event_time (identifier)
The date the event actually happened.
connector (identifier)
The name of the connector.
name (identifier)
The name of the event.
data (object)
The set of data contained by the event. Depends on the connector and name. See the documentation of the event on the connector page for more information.

Example:

{
  "id": "22gBNze4y3o57HpES4WC8MwKvwo",
  "org_id": "1zY1y6offsPNwvhFxgpteVO0GvM",
  "trigger_id": "22g5sGMNkKvAtoH1BBMP2aDtUGb",
  "creation_time": "2021-12-23T08:48:33Z",
  "event_time": "2021-12-23T08:48:32Z",
  "connector": "github",
  "name": "push",
  "data": {
    "branch": "test",
    "new_revision": "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15",
    "old_revision": "62cdb7020ff920e5aa642c3d4066950dd1f01f4d",
    "organization": "example",
    "repository": "my-project"
  }
}