...
...
...
...
...
...
...
...
...
...
...
...
Info | ||
---|---|---|
| ||
This Admin API design document is in draft status and evolving as informed by the Ed-Fi community. |
Overview
Implementers of Ed-Fi technology have signaled the need for an administrative API (Admin API) to automate functions such as key/secret management, application management and other key functions. Automated deployments are becoming more of a trend throughout Ed-Fi technology stack deployments. An Admin API would enable implementers to automate functions that require manual efforts today.
...
Below is a table of contents for topics into the Admin API design:
Table of Contents | ||
---|---|---|
|
Use Cases
The Admin API will be called programmatically within automated deployment environments. A knowledgeable person or team of people with IT administrative functions will be responsible for the configuration, usage and security of the Admin API. The Admin API will automate functions currently done today via custom scripting and/or human intervention via a user-interface, such as the Admin App or other management interfaces.
...
API Endpoint | Supported Operations | Function | Request Payload | Response Content |
---|---|---|---|---|
/identity/oauth/token | POST | Login to retrieve a token for authorized Admin API usage. | { "client_id": "string", "client_secret": "string", "grant_type": "client_credentials", "scope": "string" } | POST: 201 (Created) { "access_token": "string", "expires_in": 3600, "token_type": "Bearer", "scope": "string" } ALL: 401 (Unauthorized), 500 (System Error) |
/admin/identity/api/client | POST | Create a new identity for Admin API usage. | POST: 201 (Created) ALL: 401 (Unauthorized), 500 (System Error) | |
/admin/vendors | GET | Retrieve listing of existing vendors | N/A | GET: 200 (OK) |
POST | Add a new vendor. | { "company": "string", "namespacePrefixes": "string", "contactName": "string", "contactEmailAddress": "string" } | POST: 201 (Created) { "vendorId": 0 "company": "string", "namespacePrefixes": "string", "contactName": "string", "contactEmailAddress": "string" } Header: Location attribute: address to retrieve the created object | |
/admin/vendors/{id} | GET | Retrieve detail information for an existing vendor | N/A | GET: 204 (OK) |
PUT | Update vendor information | { "company": "string", "namespacePrefixes": "string", "contactName": "string", "contactEmailAddress": "string" } | PUT: 204 (No Content / Updated), 404 (Not Found) | |
DELETE | Delete a vendor | N/A | DELETE: 200 (OK), 404 (Not Found) | |
/admin/claimsets | GET | Returns list of valid claimsets available in the system (needed for defining applications) | N/A | GET: 200 (OK) |
/admin/applications | GET | Retrieve listing of existing applications | N/A | GET: 200 (OK) ALL: 401 (Unauthorized), 500 (System Error) |
POST | Create a new application. | { "applicationName": "string", "vendorId": 0, "claimSetName": "string", "profileId": 0, "educationOrganizationIds": [0,] } | POST: 201 (Created) { "applicationId": 0, "applicationName": "string", "vendorId": 0, "claimSetName": "string", "profileId": 0, "educationOrganizationIds": [0,] } Header: Location attribute: address to retrieve the created object | |
/admin/applications/{id} | GET | Retrieve detail information for an existing application. | N/A | GET: 200 (OK) |
PUT | Update application information. | { "applicationName": "string", "vendorId": 0, "claimSetName": "string", "profileId": 0, "educationOrganizationIds": [0,] } | PUT: 204 (No Content / Updated), 404 (Not Found) | |
DELETE | Delete an existing application. | N/A | DELETE: 200 (OK), 404 (Not Found) | |
/admin/applications/{id}/reset-credential | PUT | Reset application credential | N/A | 200 OK (Application ID, Key, Secret, API Url) |
...
API Endpoint | Supported Operations | Function | Request Payload | Response Content |
---|---|---|---|---|
/admin/instances | GET | List registered instances | N/A | |
POST | Register a new instance | |||
/admin/instances/{id} | GET | Details of an individual instance | N/A | |
PUT | Update info for an existing instance | |||
DELETE | Remove an existing instance | N/A | DELETE: 200 (OK), 404 (Not Found) |
...