Admin API
Overview
The Admin REST API is a new API for customer organizations to administrate there DataOps.live environment. It is under active development and will be added to and improved over time.
The API endpoint is https://admin.dataops.live/api/v1
and it has browsable
OpenAPI Specification (OAS 3) documentation at
https://admin.dataops.live/api/v1/docs where you can try out API calls and view
schemas and examples.
Authentication
You authenticate with the API via Organization API Keys. Currently, you must contact support@dataops.live to get an API key for your Organization.
When making requests, you provide your API key in the Authorization
header
like so:
curl -X 'GET' \
'https://admin.dataops.live/api/v1/<endpoint>' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <api-key>'
Reporting
The reporting component of this API is opt-in. Please contact support@dataops.live to enable it for your organization. Data will only be available from the point in time of the initial opt-in.
The reporting endpoints require an Organization API Key with the reporting
scope.
For the full API details, see https://admin.dataops.live/api/v1/docs#/reporting
reporting/report
The reporting/report
endpoint returns user activity over a pre-defined period
of time for the purpose of usage utilization. It shows the projects and the
maximum access level a user has had over the given period. The data is a roll-up
of daily snapshots and therefore is not suitable for security audit
use-cases.
This endpoint is fully documented at https://admin.dataops.live/api/v1/docs#/reporting/reporting_api_report however, below is an example response of a reasonable comprehensive placeholder environment.
For some of our larger organizations, the browsable API may fail to parse and
display the response correctly. If this is the case, you will see
Could not render _t, see the console.
To try out the endpoint, you can use
curl
instead.
curl -X 'GET' \
'https://admin.dataops.live/api/v1/reporting/report' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <api-key>'
Example
{
"platform": {
"groups": {
"25514": { # <- Group ID
"name": "ACME Corp",
"path": "acme-corp",
"members": {
"1754": { # <- User ID
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21906": { # <- Project ID
"name": "shared_lib",
"path": "acme-corp/shared_lib",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
},
"subgroups": {
"25518": { # <- Group ID
"name": "product",
"path": "acme-corp/product",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "MAINTAINER"
},
"1763": {
"max_access_level": "MAINTAINER"
}
},
"projects": {
"21907": {
"name": "blog",
"path": "acme-corp/product/blog",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "MAINTAINER"
},
"1763": {
"max_access_level": "MAINTAINER"
}
}
}
}
},
"25520": {
"name": "engineering",
"path": "acme-corp/engineering",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21908": {
"name": "pip_repo",
"path": "acme-corp/engineering/pip_repo",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "OWNER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
},
"25521": {
"name": "platform",
"path": "acme-corp/engineering/platform",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21912": {
"name": "network",
"path": "acme-corp/engineering/platform/network",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
},
"25522": {
"name": "reporting",
"path": "acme-corp/engineering/reporting",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21911": {
"name": "daily",
"path": "acme-corp/engineering/reporting/daily",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
},
"25523": {
"name": "apps",
"path": "acme-corp/engineering/apps",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21909": {
"name": "alpha",
"path": "acme-corp/engineering/apps/alpha",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "MAINTAINER"
},
"1757": {
"max_access_level": "MAINTAINER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
},
"21910": {
"name": "beta",
"path": "acme-corp/engineering/apps/beta",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "MAINTAINER"
},
"1760": {
"max_access_level": "MAINTAINER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
}
}
}
}
},
"users": {
"1754": { # <- User ID
"email": "john.smith@example.com",
"name": "John Smith",
"dataops_identity_uuid": null,
"state": "active",
"username": "johnsmith01"
},
"1755": {
"email": "sarah.johnson@example.com",
"name": "Sarah Johnson",
"dataops_identity_uuid": null,
"state": "active",
"username": "sjohnson"
},
"1756": {
"email": "michael.brown@example.com",
"name": "Michael Brown",
"dataops_identity_uuid": null,
"state": "active",
"username": "mikebrown23"
},
"1757": {
"email": "emily.davis@example.com",
"name": "Emily Davis",
"dataops_identity_uuid": null,
"state": "active",
"username": "emilydavis"
},
"1758": {
"email": "robert.rodriguez@example.com",
"name": "Robert Rodriguez",
"dataops_identity_uuid": null,
"state": "active",
"username": "rrodriguez"
},
"1759": {
"email": "lisa.thompson@example.com",
"name": "Lisa Thompson",
"dataops_identity_uuid": null,
"state": "active",
"username": "lthompson"
},
"1760": {
"email": "david.lee@example.com",
"name": "David Lee",
"dataops_identity_uuid": null,
"state": "active",
"username": "davidlee"
},
"1761": {
"email": "jennifer.wilson@example.com",
"name": "Jennifer Wilson",
"dataops_identity_uuid": null,
"state": "active",
"username": "jenniferw"
},
"1762": {
"email": "william.turner@example.com",
"name": "William Turner",
"dataops_identity_uuid": null,
"state": "active",
"username": "wturner"
},
"1763": {
"email": "elizabeth.white@example.com",
"name": "Elizabeth White",
"dataops_identity_uuid": null,
"state": "active",
"username": "ewhite"
}
}
}