Documentation Index¶
Fetch the complete documentation index at: https://makakoo-traylinx-35.mintlify.app/llms.txt Use this file to discover all available pages before exploring further.
Sentinel Pass Service¶
OAuth credential management and usage analytics API operations.
Sentinel Passes are security credentials (OAuth clients, API keys, and tokens) scoped to a project. The service exposes CRUD operations, key rotation, revocation, and activity log/metrics endpoints.
Base URL for CRUD operations is REACT_APP_ORGANIZATIONS_API_BASE_URL (default: https://api.traylinx.com/ma-metrics-wsp-ms/v1/api). Activity log and metrics endpoints are served by the Auth microservice at REACT_APP_AUTH_API_BASE_URL.
All requests require Api-Key and Authorization: Bearer <token> headers.
Create Sentinel Pass¶
http theme={null}
POST https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes
Create a new security credential scoped to a project.
"project".
projectId.
"api_key".
```bash theme={null}
curl -X POST https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/org-123/projects/proj-456/sentinel_passes \
-H "Authorization: Bearer **Response:** The created Sentinel Pass in unified asset format (see [Response Shape](#response-shape)).
***
## List Sentinel Passes
<CodeGroup>
```http theme={null}
GET https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes
```
</CodeGroup>
<ParamField path="orgId" type="string" required>
The organization’s unique ID.
</ParamField>
<ParamField path="projectId" type="string" required>
The project’s unique ID.
</ParamField>
<ParamField query="active" type="boolean">
Filter by active status.
</ParamField>
<ParamField query="credential_type" type="string">
Filter by credential type.
</ParamField>
<ParamField query="search" type="string">
Filter by name substring.
</ParamField>
<ParamField query="tags" type="string">
Comma-separated list of tags to filter by.
</ParamField>
```bash theme={null}
curl "https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/org-123/projects/proj-456/sentinel_passes?active=true" \
-H "Authorization: Bearer <token>" \
-H "Api-Key: <your_api_key>"
Response: Array of Sentinel Pass objects in unified asset format.
Get Sentinel Pass¶
http theme={null}
GET https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes/{passId}
Update Sentinel Pass¶
http theme={null}
PUT https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes/{passId}
Delete Sentinel Pass¶
http theme={null}
DELETE https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes/{passId}
Permanently delete a Sentinel Pass. To disable without deleting, use Revoke instead.
Rotate Key¶
http theme={null}
POST https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes/{passId}/rotate_key
Invalidate the current API key and generate a new one. The Sentinel Pass remains active.
```bash theme={null}
curl -X POST https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/org-123/projects/proj-456/sentinel_passes/pass-789/rotate_key \
-H "Authorization: Bearer **Response:** The updated Sentinel Pass with a new key.
***
## Revoke Sentinel Pass
<CodeGroup>
```http theme={null}
POST https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes/{passId}/revoke
```
</CodeGroup>
Disable a Sentinel Pass without deleting it. The credential can be re-activated later.
<ParamField path="orgId" type="string" required>
The organization’s unique ID.
</ParamField>
<ParamField path="projectId" type="string" required>
The project’s unique ID.
</ParamField>
<ParamField path="passId" type="string" required>
The Sentinel Pass ID.
</ParamField>
***
## Activate Sentinel Pass
<CodeGroup>
```http theme={null}
POST https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/organizations/{orgId}/projects/{projectId}/sentinel_passes/{passId}/activate
```
</CodeGroup>
Re-enable a previously revoked Sentinel Pass.
<ParamField path="orgId" type="string" required>
The organization’s unique ID.
</ParamField>
<ParamField path="projectId" type="string" required>
The project’s unique ID.
</ParamField>
<ParamField path="passId" type="string" required>
The Sentinel Pass ID.
</ParamField>
***
## Get Activity Logs
<CodeGroup>
```http theme={null}
GET https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/oauth/agent/activity/logs
```
</CodeGroup>
Fetch paginated activity logs for a Sentinel Pass agent. Served by the Auth microservice.
<ParamField query="agent_user_id" type="string" required>
The agent user ID associated with the Sentinel Pass.
</ParamField>
<ParamField query="page" type="integer">
Page number. Defaults to `1`.
</ParamField>
<ParamField query="per_page" type="integer">
Items per page. Defaults to `25`.
</ParamField>
<ParamField query="start_date" type="string">
ISO 8601 start date for filtering.
</ParamField>
<ParamField query="end_date" type="string">
ISO 8601 end date for filtering.
</ParamField>
<ParamField query="activity_type" type="string">
Filter by activity type: `api_request`, `token_generation`, or `error`.
</ParamField>
<ParamField query="endpoint" type="string">
Filter by endpoint path.
</ParamField>
<ParamField query="success" type="boolean">
Filter by success status.
</ParamField>
<ParamField query="sort_by" type="string">
Field to sort by.
</ParamField>
<ParamField query="sort_order" type="string">
Sort order: `asc` or `desc`. Defaults to `desc`.
</ParamField>
```bash theme={null}
curl "https://api.traylinx.com/ma-authentication-ms/v1/api/oauth/agent/activity/logs?agent_user_id=agent-123&page=1&per_page=25" \
-H "Authorization: Bearer <token>" \
-H "Api-Key: <your_api_key>"
<ResponseField name="agent_user_id" type="string">
The agent user ID.
</ResponseField>
<ResponseField name="endpoint" type="string">
The API endpoint path that was called.
</ResponseField>
<ResponseField name="http_method" type="string">
HTTP method: `GET`, `POST`, etc.
</ResponseField>
<ResponseField name="status_code" type="integer">
HTTP status code of the response.
</ResponseField>
<ResponseField name="client_ip" type="string">
Client IP address.
</ResponseField>
<ResponseField name="user_agent" type="string">
User agent string.
</ResponseField>
<ResponseField name="started_at" type="string">
ISO 8601 timestamp when the request started.
</ResponseField>
<ResponseField name="completed_at" type="string">
ISO 8601 timestamp when the request completed.
</ResponseField>
<ResponseField name="duration_ms" type="integer">
Request duration in milliseconds.
</ResponseField>
<ResponseField name="success" type="boolean">
Whether the request succeeded.
</ResponseField>
<ResponseField name="activity_type" type="string">
Activity type: `api_request`, `token_generation`, or `error`.
</ResponseField>
<ResponseField name="error_message" type="string | null">
Error message if the request failed.
</ResponseField>
Export Activity Logs¶
http theme={null}
GET https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/oauth/agent/activity/export
Export activity logs as a downloadable file. Returns a binary blob.
json, csv, or jsonl. Defaults to json.
```bash theme={null}
curl "https://api.traylinx.com/ma-authentication-ms/v1/api/oauth/agent/activity/export?agent_user_id=agent-123&format=csv" \
-H "Authorization: Bearer ***
## Get Usage Metrics
<CodeGroup>
```http theme={null}
GET https://api.traylinx.com/ma-metrics-wsp-ms/v1/api/oauth/agent/activity/metrics
```
</CodeGroup>
Fetch aggregated usage metrics for a Sentinel Pass agent over a specified time range.
<ParamField query="agent_user_id" type="string" required>
The agent user ID associated with the Sentinel Pass.
</ParamField>
<ParamField query="start_date" type="string">
ISO 8601 start date.
</ParamField>
<ParamField query="end_date" type="string">
ISO 8601 end date.
</ParamField>
<ParamField query="group_by" type="string">
Grouping interval: `hour`, `day`, or `week`. Defaults to `day`.
</ParamField>
```bash theme={null}
curl "https://api.traylinx.com/ma-authentication-ms/v1/api/oauth/agent/activity/metrics?agent_user_id=agent-123&group_by=day" \
-H "Authorization: Bearer <token>" \
-H "Api-Key: <your_api_key>"
<ResponseField name="total_requests" type="integer">
Total number of requests in the interval.
</ResponseField>
<ResponseField name="success_count" type="integer">
Number of successful requests.
</ResponseField>
<ResponseField name="error_count" type="integer">
Number of failed requests.
</ResponseField>
<ResponseField name="avg_latency_ms" type="number">
Average response latency in milliseconds.
</ResponseField>
<ResponseField name="p95_latency_ms" type="number">
95th percentile latency in milliseconds.
</ResponseField>
<ResponseField name="unique_endpoints" type="integer">
Number of distinct endpoints called.
</ResponseField>
Response Shape¶
All CRUD endpoints return Sentinel Passes in the unified asset format:
"studio_tool".
"security".
api_key.
null for non-expiring credentials.
Caching and Rate Limits¶
- Metrics data is cached client-side for 30 seconds.
- Activity log results are cached per page and filter combination.
- The recommended auto-refresh interval is 30 seconds.
- Implement exponential backoff on failures.
Built with Mintlify.