API Access
The FoundriesFactory™ Platform APIs can be accessed via two methods:
- OAuth2 tokens managed in the Application Credentials interface.
- API Tokens managed in the API tokens interface.
These credentials allow users to access:
- REST APIs
- Using the HTTP header
OSF-TOKEN: <token>.- Using an OAuth2 bearer token
Authorization: Bearer <access-token>- Git repositories. Access is granted by passing an API token as the password to Git clone and fetch operations.
- Factory containers. Access is granted by passing an API token as the password to
docker login hub.foundries.io.- Fioctl® uses OAuth2 by default, but can also use API Tokens.
All tokens are created with scopes to help limit what they can do.
Note
Fioctl has a Docker Credential Helper which simplifies access to
hub.foundries.io.
Common Scopes
Some common scopes you may find useful include:
source:read-update: For Git.targets:read, devices:read, ci:read: Read-only access for Fioctl or REST API.targets:read-update, devices:read-update, ci:read: Read-update access for Fioctl.containers:read: For running docker commands on Factory containers.
Token Scopes
Scopes define what resources a given token may perform operations on. The following scopes are supported:
Source
source:read- Can perform git clone/fetch/pull operations.
source:read-update- Can perform git push operations.
source:delete- Can delete a reference (
git push --delete ...) and force-push (git push -f). source:create- Can create a new references (tags and branches).
Containers
containers:read- Can
docker pull. containers:read-update- Can
docker push.
CI
ci:read- Can access CI builds
https://api.foundries.io/projects/<factory>/lmp/. ci:read-update- This is not usually needed as
source:read-updatetriggers the CI. However, custom use-cases that trigger CI builds viahttps://api.foundries.io/projects/<factory>/lmp/builds/may use this.
Devices
devices:read- Can view device(s)
https://api.foundries.io/ota/devices/. devices:read-update- Can update configuration on a device
https://api.foundries.io/ota/devices/<device>/config/ devices:create- Can create a device (
lmp-device-registerwith an API token). devices:delete- Can delete a device
https://api.foundries.io/ota/devices/<device>/
Targets
targets:read- Can view
targets.jsonhttps://api.foundries.io/ota/factories/<factory>/targets/. targets:read-update- Can update
targets.jsonhttps://api.foundries.io/ota/factories/<factory>/targets/.