@bluefly/openstandardagents 0.4.9 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.version.json +3 -3
- package/CHANGELOG.md +8 -8
- package/README.md +68 -58
- package/bin/postinstall +0 -0
- package/dist/.version.json +3 -3
- package/dist/adapters/claude-code/adapter.js +2 -2
- package/dist/adapters/docker/generators.js +19 -19
- package/dist/adapters/drupal/generator.js +76 -76
- package/dist/adapters/openai-agents/adapter.js +2 -2
- package/dist/cli/schema-driven/schema-loader.js +5 -5
- package/dist/mcp-server/__tests__/mcp-server.spec.js +20 -11
- package/dist/mcp-server/index.js +0 -0
- package/dist/package.json +24 -11
- package/dist/services/export/langchain/langchain-exporter.js +2 -2
- package/dist/services/export/langchain/memory-generator.js +2 -2
- package/dist/services/export/testing/test-generator.js +1 -1
- package/dist/services/taxonomy-service.d.ts +3 -3
- package/dist/skills/test-skill/package.json +1 -1
- package/dist/spec/extensions/role-manifest.md +188 -0
- package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/agent.schema.json +2 -1
- package/dist/spec/v0.5/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/role.schema.json +268 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/role.d.ts +126 -0
- package/dist/types/role.js +38 -0
- package/dist/validation/validator.js +1 -1
- package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
- package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/agents/security-audit-agent.ossa.yaml +234 -0
- package/examples/agentscope/react-assistant/agent.ossa.yaml +36 -32
- package/examples/drupal/content-moderator.ossa.yaml +2 -2
- package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
- package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
- package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
- package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
- package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
- package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
- package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
- package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
- package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
- package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
- package/examples/getting-started/README.md +3 -3
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
- package/examples/hierarchical-agent.ossa.yaml +10 -53
- package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
- package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
- package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
- package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
- package/examples/pipeline-agent.ossa.yaml +3 -3
- package/examples/platform-specific/claude-code-subagent.yaml +1 -1
- package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
- package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
- package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
- package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/reference-implementations/python-client/examples/basic_usage.py +0 -0
- package/examples/reference-implementations/python-client/examples/publish_agent.py +0 -0
- package/examples/roles/drupal-developer.role.yaml +37 -0
- package/examples/roles/platform-operator.role.yaml +28 -0
- package/examples/roles/security-auditor.role.yaml +27 -0
- package/examples/swarm-agent.ossa.yaml +13 -51
- package/examples/team-agent.ossa.yaml +12 -61
- package/examples/team-lead-teammate.ossa.yaml +12 -17
- package/openapi/agent-communication.yaml +260 -212
- package/openapi/agent-crud.yaml +217 -187
- package/openapi/agent-discovery.yaml +119 -81
- package/openapi/agent-identity.yaml +219 -187
- package/openapi/agent-taxonomy.yaml +95 -38
- package/openapi/agents-md-service.yaml +103 -30
- package/openapi/cli/openapi.yaml +147 -40
- package/openapi/core/ossa-core-api.openapi.yaml +327 -271
- package/openapi/core/ossa-registry-api.openapi.yaml +298 -235
- package/openapi/core/ossa-registry.openapi.yaml +299 -159
- package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
- package/openapi/daemon-api.openapi.yaml +323 -181
- package/openapi/dev-cli/openapi.yaml +137 -113
- package/openapi/github-sync.yaml +62 -19
- package/openapi/marketplace-plugin.openapi.yaml +539 -466
- package/openapi/ossa-api.openapi.yaml +354 -213
- package/openapi/ossa-cli-enhancements.openapi.yaml +108 -89
- package/openapi/ossa-cli.yaml +260 -184
- package/openapi/protocols/sse-streams.yaml +66 -74
- package/openapi/protocols/websocket-events.yaml +61 -54
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
- package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
- package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
- package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
- package/openapi/release-automation.openapi.yaml +47 -13
- package/openapi/schemas/common/agent.yaml +30 -29
- package/openapi/schemas/common/errors.yaml +13 -3
- package/openapi/schemas/common/metadata.yaml +22 -7
- package/openapi/schemas/common/pagination.yaml +18 -6
- package/openapi/schemas/common/security.yaml +13 -5
- package/openapi/schemas/index.yaml +49 -42
- package/openapi/uadp-asyncapi.yaml +4 -2
- package/openapi/uadp-openapi.yaml +243 -165
- package/openapi/version-management.openapi.yaml +142 -135
- package/package.json +114 -103
- package/spec/extensions/role-manifest.md +188 -0
- package/spec/v0.4/extensions/mcp/README.md +1 -1
- package/spec/v0.5/agent.schema.json +2 -1
- package/spec/v0.5/extensions/mcp/README.md +1 -1
- package/spec/v0.5/role.schema.json +268 -0
|
@@ -26,14 +26,12 @@ info:
|
|
|
26
26
|
- W3C Distributed Tracing (trace_id, span_id)
|
|
27
27
|
- FIPS 140-2 compliant encryption (optional)
|
|
28
28
|
- Comprehensive audit logging
|
|
29
|
-
|
|
30
29
|
contact:
|
|
31
30
|
name: Bluefly.io LLM Platform Team
|
|
32
31
|
url: https://github.com/blueflyio/openstandardagents
|
|
33
32
|
license:
|
|
34
33
|
name: MIT
|
|
35
34
|
url: https://opensource.org/licenses/MIT
|
|
36
|
-
|
|
37
35
|
servers:
|
|
38
36
|
- url: https://api.llm.bluefly.io/ossa/v1/identity
|
|
39
37
|
description: Production server
|
|
@@ -41,11 +39,9 @@ servers:
|
|
|
41
39
|
description: Development server
|
|
42
40
|
- url: http://localhost:3000/identity
|
|
43
41
|
description: Local development
|
|
44
|
-
|
|
45
42
|
security:
|
|
46
43
|
- BearerAuth: []
|
|
47
44
|
- ApiKeyAuth: []
|
|
48
|
-
|
|
49
45
|
tags:
|
|
50
46
|
- name: Authentication
|
|
51
47
|
description: Agent authentication and token management
|
|
@@ -53,7 +49,6 @@ tags:
|
|
|
53
49
|
description: Agent identity verification and retrieval
|
|
54
50
|
- name: Tokens
|
|
55
51
|
description: Token lifecycle management
|
|
56
|
-
|
|
57
52
|
paths:
|
|
58
53
|
/agents/{id}/authenticate:
|
|
59
54
|
post:
|
|
@@ -61,83 +56,96 @@ paths:
|
|
|
61
56
|
description: |
|
|
62
57
|
Authenticate an agent instance using provided credentials and issue an access token.
|
|
63
58
|
Supports multiple authentication methods: API key, OAuth2, and mTLS.
|
|
64
|
-
tags:
|
|
59
|
+
tags:
|
|
60
|
+
- Authentication
|
|
65
61
|
operationId: authenticateAgent
|
|
66
|
-
security: []
|
|
62
|
+
security: []
|
|
67
63
|
parameters:
|
|
68
|
-
- $ref:
|
|
64
|
+
- $ref: "#/components/parameters/AgentId"
|
|
69
65
|
requestBody:
|
|
70
66
|
required: true
|
|
71
67
|
content:
|
|
72
68
|
application/json:
|
|
73
69
|
schema:
|
|
74
|
-
$ref:
|
|
70
|
+
$ref: "#/components/schemas/AuthenticationRequest"
|
|
75
71
|
examples:
|
|
76
72
|
apiKeyAuth:
|
|
77
73
|
summary: API Key Authentication
|
|
78
74
|
value:
|
|
79
|
-
agent_id:
|
|
75
|
+
agent_id: data-processor-agent
|
|
80
76
|
credential:
|
|
81
|
-
type:
|
|
82
|
-
api_key:
|
|
83
|
-
scope:
|
|
77
|
+
type: api_key
|
|
78
|
+
api_key: ossa_ak_1234567890abcdef1234567890abcdef
|
|
79
|
+
scope:
|
|
80
|
+
- read
|
|
81
|
+
- execute
|
|
84
82
|
context:
|
|
85
|
-
tenant_id:
|
|
86
|
-
user_id:
|
|
83
|
+
tenant_id: tenant-123
|
|
84
|
+
user_id: user-456
|
|
87
85
|
oauth2Auth:
|
|
88
86
|
summary: OAuth2 Token Authentication
|
|
89
87
|
value:
|
|
90
|
-
agent_id:
|
|
88
|
+
agent_id: analytics-agent
|
|
91
89
|
credential:
|
|
92
|
-
type:
|
|
93
|
-
access_token:
|
|
94
|
-
token_type:
|
|
95
|
-
scope:
|
|
90
|
+
type: oauth2
|
|
91
|
+
access_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
|
|
92
|
+
token_type: Bearer
|
|
93
|
+
scope:
|
|
94
|
+
- read
|
|
95
|
+
- write
|
|
96
|
+
- execute
|
|
96
97
|
mtlsAuth:
|
|
97
98
|
summary: mTLS Certificate Authentication
|
|
98
99
|
value:
|
|
99
|
-
agent_id:
|
|
100
|
+
agent_id: secure-agent
|
|
100
101
|
credential:
|
|
101
|
-
type:
|
|
102
|
-
certificate:
|
|
103
|
-
scope:
|
|
102
|
+
type: mtls
|
|
103
|
+
certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t...
|
|
104
|
+
scope:
|
|
105
|
+
- admin
|
|
104
106
|
responses:
|
|
105
|
-
|
|
107
|
+
"200":
|
|
106
108
|
description: Authentication successful
|
|
107
109
|
content:
|
|
108
110
|
application/json:
|
|
109
111
|
schema:
|
|
110
|
-
$ref:
|
|
112
|
+
$ref: "#/components/schemas/TokenResponse"
|
|
111
113
|
examples:
|
|
112
114
|
success:
|
|
113
115
|
summary: Successful authentication
|
|
114
116
|
value:
|
|
115
|
-
access_token:
|
|
116
|
-
token_type:
|
|
117
|
+
access_token: example-access-token-redacted
|
|
118
|
+
token_type: Bearer
|
|
117
119
|
expires_in: 3600
|
|
118
|
-
scope:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
$ref:
|
|
126
|
-
|
|
127
|
-
$ref:
|
|
128
|
-
|
|
129
|
-
$ref:
|
|
130
|
-
|
|
120
|
+
scope:
|
|
121
|
+
- read
|
|
122
|
+
- execute
|
|
123
|
+
instance_id: 550e8400-e29b-41d4-a716-446655440000
|
|
124
|
+
issued_at: 2025-12-18T10:00:00Z
|
|
125
|
+
token_id: 650e8400-e29b-41d4-a716-446655440001
|
|
126
|
+
"400":
|
|
127
|
+
$ref: "#/components/responses/BadRequest"
|
|
128
|
+
"401":
|
|
129
|
+
$ref: "#/components/responses/Unauthorized"
|
|
130
|
+
"429":
|
|
131
|
+
$ref: "#/components/responses/TooManyRequests"
|
|
132
|
+
"500":
|
|
133
|
+
$ref: "#/components/responses/InternalServerError"
|
|
134
|
+
x-ossa-capability: authenticate-agent
|
|
135
|
+
x-ossa-autonomy:
|
|
136
|
+
level: supervised
|
|
137
|
+
approval_required: true
|
|
131
138
|
/agents/{id}/identity:
|
|
132
139
|
get:
|
|
133
140
|
summary: Get agent identity
|
|
134
141
|
description: |
|
|
135
142
|
Retrieve complete identity information for an authenticated agent instance.
|
|
136
143
|
Includes instance metadata, status, and tracing information.
|
|
137
|
-
tags:
|
|
144
|
+
tags:
|
|
145
|
+
- Identity
|
|
138
146
|
operationId: getAgentIdentity
|
|
139
147
|
parameters:
|
|
140
|
-
- $ref:
|
|
148
|
+
- $ref: "#/components/parameters/AgentId"
|
|
141
149
|
- name: instance_id
|
|
142
150
|
in: query
|
|
143
151
|
description: Optional specific instance ID to retrieve
|
|
@@ -145,50 +153,51 @@ paths:
|
|
|
145
153
|
type: string
|
|
146
154
|
format: uuid
|
|
147
155
|
responses:
|
|
148
|
-
|
|
156
|
+
"200":
|
|
149
157
|
description: Agent identity retrieved
|
|
150
158
|
content:
|
|
151
159
|
application/json:
|
|
152
160
|
schema:
|
|
153
|
-
$ref:
|
|
161
|
+
$ref: "#/components/schemas/AgentIdentity"
|
|
154
162
|
examples:
|
|
155
163
|
activeAgent:
|
|
156
164
|
summary: Active agent instance
|
|
157
165
|
value:
|
|
158
|
-
agent_id:
|
|
159
|
-
instance_id:
|
|
160
|
-
version:
|
|
161
|
-
kind:
|
|
162
|
-
status:
|
|
163
|
-
tenant_id:
|
|
164
|
-
user_id:
|
|
165
|
-
trace_id:
|
|
166
|
-
span_id:
|
|
167
|
-
created_at:
|
|
168
|
-
updated_at:
|
|
166
|
+
agent_id: data-processor-agent
|
|
167
|
+
instance_id: 550e8400-e29b-41d4-a716-446655440000
|
|
168
|
+
version: ossa/v0.3.3
|
|
169
|
+
kind: Agent
|
|
170
|
+
status: active
|
|
171
|
+
tenant_id: tenant-123
|
|
172
|
+
user_id: user-456
|
|
173
|
+
trace_id: 4bf92f3577b34da6a3ce929d0e0e4736
|
|
174
|
+
span_id: 00f067aa0ba902b7
|
|
175
|
+
created_at: 2025-12-18T09:00:00Z
|
|
176
|
+
updated_at: 2025-12-18T10:00:00Z
|
|
169
177
|
metadata:
|
|
170
178
|
labels:
|
|
171
|
-
environment:
|
|
172
|
-
version:
|
|
179
|
+
environment: production
|
|
180
|
+
version: 1.0.0
|
|
173
181
|
annotations:
|
|
174
|
-
deployed_by:
|
|
175
|
-
|
|
176
|
-
$ref:
|
|
177
|
-
|
|
178
|
-
$ref:
|
|
179
|
-
|
|
180
|
-
$ref:
|
|
181
|
-
|
|
182
|
+
deployed_by: buildkit-cli
|
|
183
|
+
"401":
|
|
184
|
+
$ref: "#/components/responses/Unauthorized"
|
|
185
|
+
"404":
|
|
186
|
+
$ref: "#/components/responses/NotFound"
|
|
187
|
+
"500":
|
|
188
|
+
$ref: "#/components/responses/InternalServerError"
|
|
189
|
+
x-ossa-capability: get-agent-identity
|
|
182
190
|
/agents/{id}/tokens:
|
|
183
191
|
post:
|
|
184
192
|
summary: Issue new token
|
|
185
193
|
description: |
|
|
186
194
|
Issue a new authentication token for an already authenticated agent.
|
|
187
195
|
Useful for token refresh or obtaining tokens with different scopes.
|
|
188
|
-
tags:
|
|
196
|
+
tags:
|
|
197
|
+
- Tokens
|
|
189
198
|
operationId: issueToken
|
|
190
199
|
parameters:
|
|
191
|
-
- $ref:
|
|
200
|
+
- $ref: "#/components/parameters/AgentId"
|
|
192
201
|
requestBody:
|
|
193
202
|
required: true
|
|
194
203
|
content:
|
|
@@ -205,7 +214,9 @@ paths:
|
|
|
205
214
|
items:
|
|
206
215
|
type: string
|
|
207
216
|
description: Requested token scopes
|
|
208
|
-
default:
|
|
217
|
+
default:
|
|
218
|
+
- read
|
|
219
|
+
- execute
|
|
209
220
|
expires_in:
|
|
210
221
|
type: integer
|
|
211
222
|
description: Requested token lifetime in seconds (max 86400)
|
|
@@ -218,36 +229,43 @@ paths:
|
|
|
218
229
|
refreshToken:
|
|
219
230
|
summary: Issue refresh token
|
|
220
231
|
value:
|
|
221
|
-
instance_id:
|
|
222
|
-
scope:
|
|
232
|
+
instance_id: 550e8400-e29b-41d4-a716-446655440000
|
|
233
|
+
scope:
|
|
234
|
+
- read
|
|
235
|
+
- write
|
|
236
|
+
- execute
|
|
223
237
|
expires_in: 7200
|
|
224
238
|
responses:
|
|
225
|
-
|
|
239
|
+
"201":
|
|
226
240
|
description: Token issued successfully
|
|
227
241
|
content:
|
|
228
242
|
application/json:
|
|
229
243
|
schema:
|
|
230
|
-
$ref:
|
|
231
|
-
|
|
232
|
-
$ref:
|
|
233
|
-
|
|
234
|
-
$ref:
|
|
235
|
-
|
|
236
|
-
$ref:
|
|
237
|
-
|
|
238
|
-
$ref:
|
|
239
|
-
|
|
240
|
-
$ref:
|
|
241
|
-
|
|
244
|
+
$ref: "#/components/schemas/TokenResponse"
|
|
245
|
+
"400":
|
|
246
|
+
$ref: "#/components/responses/BadRequest"
|
|
247
|
+
"401":
|
|
248
|
+
$ref: "#/components/responses/Unauthorized"
|
|
249
|
+
"403":
|
|
250
|
+
$ref: "#/components/responses/Forbidden"
|
|
251
|
+
"429":
|
|
252
|
+
$ref: "#/components/responses/TooManyRequests"
|
|
253
|
+
"500":
|
|
254
|
+
$ref: "#/components/responses/InternalServerError"
|
|
255
|
+
x-ossa-capability: issue-token
|
|
256
|
+
x-ossa-autonomy:
|
|
257
|
+
level: supervised
|
|
258
|
+
approval_required: true
|
|
242
259
|
get:
|
|
243
260
|
summary: List active tokens
|
|
244
261
|
description: |
|
|
245
262
|
List all active authentication tokens for the agent instance.
|
|
246
263
|
Useful for token management and audit purposes.
|
|
247
|
-
tags:
|
|
264
|
+
tags:
|
|
265
|
+
- Tokens
|
|
248
266
|
operationId: listTokens
|
|
249
267
|
parameters:
|
|
250
|
-
- $ref:
|
|
268
|
+
- $ref: "#/components/parameters/AgentId"
|
|
251
269
|
- name: instance_id
|
|
252
270
|
in: query
|
|
253
271
|
description: Filter by specific instance ID
|
|
@@ -270,7 +288,7 @@ paths:
|
|
|
270
288
|
minimum: 0
|
|
271
289
|
default: 0
|
|
272
290
|
responses:
|
|
273
|
-
|
|
291
|
+
"200":
|
|
274
292
|
description: List of active tokens
|
|
275
293
|
content:
|
|
276
294
|
application/json:
|
|
@@ -307,21 +325,22 @@ paths:
|
|
|
307
325
|
type: integer
|
|
308
326
|
offset:
|
|
309
327
|
type: integer
|
|
310
|
-
|
|
311
|
-
$ref:
|
|
312
|
-
|
|
313
|
-
$ref:
|
|
314
|
-
|
|
328
|
+
"401":
|
|
329
|
+
$ref: "#/components/responses/Unauthorized"
|
|
330
|
+
"500":
|
|
331
|
+
$ref: "#/components/responses/InternalServerError"
|
|
332
|
+
x-ossa-capability: list-tokens
|
|
315
333
|
/agents/{id}/tokens/{tokenId}:
|
|
316
334
|
delete:
|
|
317
335
|
summary: Revoke token
|
|
318
336
|
description: |
|
|
319
337
|
Revoke a specific authentication token, immediately invalidating it.
|
|
320
338
|
Once revoked, the token cannot be used for API requests.
|
|
321
|
-
tags:
|
|
339
|
+
tags:
|
|
340
|
+
- Tokens
|
|
322
341
|
operationId: revokeToken
|
|
323
342
|
parameters:
|
|
324
|
-
- $ref:
|
|
343
|
+
- $ref: "#/components/parameters/AgentId"
|
|
325
344
|
- name: tokenId
|
|
326
345
|
in: path
|
|
327
346
|
required: true
|
|
@@ -334,71 +353,82 @@ paths:
|
|
|
334
353
|
content:
|
|
335
354
|
application/json:
|
|
336
355
|
schema:
|
|
337
|
-
$ref:
|
|
356
|
+
$ref: "#/components/schemas/TokenRevocationRequest"
|
|
338
357
|
examples:
|
|
339
358
|
securityBreach:
|
|
340
359
|
summary: Revoke due to security breach
|
|
341
360
|
value:
|
|
342
|
-
token_id:
|
|
343
|
-
reason:
|
|
361
|
+
token_id: 650e8400-e29b-41d4-a716-446655440001
|
|
362
|
+
reason: security_breach
|
|
344
363
|
responses:
|
|
345
|
-
|
|
364
|
+
"200":
|
|
346
365
|
description: Token revoked successfully
|
|
347
366
|
content:
|
|
348
367
|
application/json:
|
|
349
368
|
schema:
|
|
350
|
-
$ref:
|
|
369
|
+
$ref: "#/components/schemas/TokenRevocationResponse"
|
|
351
370
|
examples:
|
|
352
371
|
success:
|
|
353
372
|
summary: Successful revocation
|
|
354
373
|
value:
|
|
355
374
|
revoked: true
|
|
356
|
-
token_id:
|
|
357
|
-
revoked_at:
|
|
358
|
-
|
|
359
|
-
$ref:
|
|
360
|
-
|
|
361
|
-
$ref:
|
|
362
|
-
|
|
363
|
-
$ref:
|
|
364
|
-
|
|
375
|
+
token_id: 650e8400-e29b-41d4-a716-446655440001
|
|
376
|
+
revoked_at: 2025-12-18T11:00:00Z
|
|
377
|
+
"401":
|
|
378
|
+
$ref: "#/components/responses/Unauthorized"
|
|
379
|
+
"404":
|
|
380
|
+
$ref: "#/components/responses/NotFound"
|
|
381
|
+
"500":
|
|
382
|
+
$ref: "#/components/responses/InternalServerError"
|
|
383
|
+
x-ossa-capability: revoke-token
|
|
384
|
+
x-ossa-autonomy:
|
|
385
|
+
level: supervised
|
|
386
|
+
approval_required: true
|
|
365
387
|
/agents/{id}/security-context:
|
|
366
388
|
get:
|
|
367
389
|
summary: Get security context
|
|
368
390
|
description: |
|
|
369
391
|
Retrieve the complete security and authorization context for an authenticated agent.
|
|
370
392
|
Includes permissions, encryption requirements, and compliance settings.
|
|
371
|
-
tags:
|
|
393
|
+
tags:
|
|
394
|
+
- Identity
|
|
372
395
|
operationId: getSecurityContext
|
|
373
396
|
parameters:
|
|
374
|
-
- $ref:
|
|
397
|
+
- $ref: "#/components/parameters/AgentId"
|
|
375
398
|
responses:
|
|
376
|
-
|
|
399
|
+
"200":
|
|
377
400
|
description: Security context retrieved
|
|
378
401
|
content:
|
|
379
402
|
application/json:
|
|
380
403
|
schema:
|
|
381
|
-
$ref:
|
|
404
|
+
$ref: "#/components/schemas/SecurityContext"
|
|
382
405
|
examples:
|
|
383
406
|
fullContext:
|
|
384
407
|
summary: Complete security context
|
|
385
408
|
value:
|
|
386
409
|
authenticated: true
|
|
387
410
|
principal:
|
|
388
|
-
agent_id:
|
|
389
|
-
instance_id:
|
|
390
|
-
tenant_id:
|
|
391
|
-
user_id:
|
|
392
|
-
scopes:
|
|
411
|
+
agent_id: data-processor-agent
|
|
412
|
+
instance_id: 550e8400-e29b-41d4-a716-446655440000
|
|
413
|
+
tenant_id: tenant-123
|
|
414
|
+
user_id: user-456
|
|
415
|
+
scopes:
|
|
416
|
+
- read
|
|
417
|
+
- write
|
|
418
|
+
- execute
|
|
393
419
|
permissions:
|
|
394
420
|
resources:
|
|
395
|
-
- resource_type:
|
|
421
|
+
- resource_type: workflows
|
|
396
422
|
resource_id: "*"
|
|
397
|
-
actions:
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
423
|
+
actions:
|
|
424
|
+
- read
|
|
425
|
+
- execute
|
|
426
|
+
- resource_type: data
|
|
427
|
+
resource_id: dataset-123
|
|
428
|
+
actions:
|
|
429
|
+
- read
|
|
430
|
+
- write
|
|
431
|
+
policy_version: v1.0.0
|
|
402
432
|
encryption:
|
|
403
433
|
in_transit:
|
|
404
434
|
required: true
|
|
@@ -406,21 +436,21 @@ paths:
|
|
|
406
436
|
mtls_required: false
|
|
407
437
|
at_rest:
|
|
408
438
|
required: true
|
|
409
|
-
algorithm:
|
|
439
|
+
algorithm: AES-256-GCM
|
|
410
440
|
compliance:
|
|
411
441
|
fips_mode: false
|
|
412
|
-
audit_level:
|
|
442
|
+
audit_level: detailed
|
|
413
443
|
retention_days: 90
|
|
414
444
|
session:
|
|
415
|
-
session_id:
|
|
416
|
-
created_at:
|
|
417
|
-
expires_at:
|
|
418
|
-
last_activity:
|
|
419
|
-
|
|
420
|
-
$ref:
|
|
421
|
-
|
|
422
|
-
$ref:
|
|
423
|
-
|
|
445
|
+
session_id: 750e8400-e29b-41d4-a716-446655440002
|
|
446
|
+
created_at: 2025-12-18T10:00:00Z
|
|
447
|
+
expires_at: 2025-12-18T11:00:00Z
|
|
448
|
+
last_activity: 2025-12-18T10:30:00Z
|
|
449
|
+
"401":
|
|
450
|
+
$ref: "#/components/responses/Unauthorized"
|
|
451
|
+
"500":
|
|
452
|
+
$ref: "#/components/responses/InternalServerError"
|
|
453
|
+
x-ossa-capability: get-security-context
|
|
424
454
|
components:
|
|
425
455
|
securitySchemes:
|
|
426
456
|
BearerAuth:
|
|
@@ -446,7 +476,6 @@ components:
|
|
|
446
476
|
execute: Execute agent tasks and workflows
|
|
447
477
|
admin: Administrative access
|
|
448
478
|
messaging: Agent-to-agent messaging
|
|
449
|
-
|
|
450
479
|
parameters:
|
|
451
480
|
AgentId:
|
|
452
481
|
name: id
|
|
@@ -455,36 +484,29 @@ components:
|
|
|
455
484
|
description: Agent identifier from the OSSA manifest (metadata.name)
|
|
456
485
|
schema:
|
|
457
486
|
type: string
|
|
458
|
-
pattern:
|
|
487
|
+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
459
488
|
minLength: 1
|
|
460
489
|
maxLength: 63
|
|
461
490
|
examples:
|
|
462
491
|
dataProcessor:
|
|
463
|
-
value:
|
|
492
|
+
value: data-processor-agent
|
|
464
493
|
summary: Data processing agent
|
|
465
494
|
analyticsAgent:
|
|
466
|
-
value:
|
|
495
|
+
value: analytics-agent
|
|
467
496
|
summary: Analytics agent
|
|
468
|
-
|
|
469
497
|
schemas:
|
|
470
498
|
AgentIdentity:
|
|
471
|
-
$ref:
|
|
472
|
-
|
|
499
|
+
$ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/AgentIdentity
|
|
473
500
|
AuthenticationRequest:
|
|
474
|
-
$ref:
|
|
475
|
-
|
|
501
|
+
$ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/AuthenticationRequest
|
|
476
502
|
TokenResponse:
|
|
477
|
-
$ref:
|
|
478
|
-
|
|
503
|
+
$ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenResponse
|
|
479
504
|
SecurityContext:
|
|
480
|
-
$ref:
|
|
481
|
-
|
|
505
|
+
$ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/SecurityContext
|
|
482
506
|
TokenRevocationRequest:
|
|
483
|
-
$ref:
|
|
484
|
-
|
|
507
|
+
$ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenRevocationRequest
|
|
485
508
|
TokenRevocationResponse:
|
|
486
|
-
$ref:
|
|
487
|
-
|
|
509
|
+
$ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenRevocationResponse
|
|
488
510
|
Error:
|
|
489
511
|
type: object
|
|
490
512
|
description: Standard error response
|
|
@@ -509,72 +531,70 @@ components:
|
|
|
509
531
|
type: string
|
|
510
532
|
format: date-time
|
|
511
533
|
description: Error timestamp
|
|
512
|
-
|
|
513
534
|
responses:
|
|
514
535
|
BadRequest:
|
|
515
536
|
description: Bad request - invalid input
|
|
516
537
|
content:
|
|
517
538
|
application/json:
|
|
518
539
|
schema:
|
|
519
|
-
$ref:
|
|
540
|
+
$ref: "#/components/schemas/Error"
|
|
520
541
|
examples:
|
|
521
542
|
invalidCredentials:
|
|
522
543
|
summary: Invalid credentials format
|
|
523
544
|
value:
|
|
524
|
-
error:
|
|
525
|
-
message:
|
|
545
|
+
error: invalid_request
|
|
546
|
+
message: Invalid credential format
|
|
526
547
|
details:
|
|
527
|
-
field:
|
|
528
|
-
reason:
|
|
529
|
-
timestamp:
|
|
530
|
-
|
|
548
|
+
field: credential.api_key
|
|
549
|
+
reason: Must be at least 32 characters
|
|
550
|
+
timestamp: 2025-12-18T10:00:00Z
|
|
531
551
|
Unauthorized:
|
|
532
552
|
description: Unauthorized - authentication failed
|
|
533
553
|
content:
|
|
534
554
|
application/json:
|
|
535
555
|
schema:
|
|
536
|
-
$ref:
|
|
556
|
+
$ref: "#/components/schemas/Error"
|
|
537
557
|
examples:
|
|
538
558
|
invalidToken:
|
|
539
559
|
summary: Invalid or expired token
|
|
540
560
|
value:
|
|
541
|
-
error:
|
|
542
|
-
message:
|
|
543
|
-
timestamp:
|
|
544
|
-
|
|
561
|
+
error: unauthorized
|
|
562
|
+
message: Invalid or expired authentication token
|
|
563
|
+
timestamp: 2025-12-18T10:00:00Z
|
|
545
564
|
Forbidden:
|
|
546
565
|
description: Forbidden - insufficient permissions
|
|
547
566
|
content:
|
|
548
567
|
application/json:
|
|
549
568
|
schema:
|
|
550
|
-
$ref:
|
|
569
|
+
$ref: "#/components/schemas/Error"
|
|
551
570
|
examples:
|
|
552
571
|
insufficientScope:
|
|
553
572
|
summary: Insufficient scope
|
|
554
573
|
value:
|
|
555
|
-
error:
|
|
556
|
-
message:
|
|
574
|
+
error: forbidden
|
|
575
|
+
message: Insufficient permissions for requested scopes
|
|
557
576
|
details:
|
|
558
|
-
requested:
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
577
|
+
requested:
|
|
578
|
+
- admin
|
|
579
|
+
granted:
|
|
580
|
+
- read
|
|
581
|
+
- execute
|
|
582
|
+
timestamp: 2025-12-18T10:00:00Z
|
|
562
583
|
NotFound:
|
|
563
584
|
description: Resource not found
|
|
564
585
|
content:
|
|
565
586
|
application/json:
|
|
566
587
|
schema:
|
|
567
|
-
$ref:
|
|
588
|
+
$ref: "#/components/schemas/Error"
|
|
568
589
|
examples:
|
|
569
590
|
agentNotFound:
|
|
570
591
|
summary: Agent not found
|
|
571
592
|
value:
|
|
572
|
-
error:
|
|
573
|
-
message:
|
|
593
|
+
error: not_found
|
|
594
|
+
message: Agent instance not found
|
|
574
595
|
details:
|
|
575
|
-
agent_id:
|
|
576
|
-
timestamp:
|
|
577
|
-
|
|
596
|
+
agent_id: unknown-agent
|
|
597
|
+
timestamp: 2025-12-18T10:00:00Z
|
|
578
598
|
TooManyRequests:
|
|
579
599
|
description: Rate limit exceeded
|
|
580
600
|
headers:
|
|
@@ -593,28 +613,40 @@ components:
|
|
|
593
613
|
content:
|
|
594
614
|
application/json:
|
|
595
615
|
schema:
|
|
596
|
-
$ref:
|
|
616
|
+
$ref: "#/components/schemas/Error"
|
|
597
617
|
examples:
|
|
598
618
|
rateLimitExceeded:
|
|
599
619
|
summary: Rate limit exceeded
|
|
600
620
|
value:
|
|
601
|
-
error:
|
|
602
|
-
message:
|
|
621
|
+
error: rate_limit_exceeded
|
|
622
|
+
message: Too many authentication requests. Please try again later.
|
|
603
623
|
details:
|
|
604
624
|
retry_after: 60
|
|
605
|
-
timestamp:
|
|
606
|
-
|
|
625
|
+
timestamp: 2025-12-18T10:00:00Z
|
|
607
626
|
InternalServerError:
|
|
608
627
|
description: Internal server error
|
|
609
628
|
content:
|
|
610
629
|
application/json:
|
|
611
630
|
schema:
|
|
612
|
-
$ref:
|
|
631
|
+
$ref: "#/components/schemas/Error"
|
|
613
632
|
examples:
|
|
614
633
|
serverError:
|
|
615
634
|
summary: Internal server error
|
|
616
635
|
value:
|
|
617
|
-
error:
|
|
618
|
-
message:
|
|
619
|
-
trace_id:
|
|
620
|
-
timestamp:
|
|
636
|
+
error: internal_server_error
|
|
637
|
+
message: An unexpected error occurred
|
|
638
|
+
trace_id: 4bf92f3577b34da6a3ce929d0e0e4736
|
|
639
|
+
timestamp: 2025-12-18T10:00:00Z
|
|
640
|
+
x-ossa-metadata:
|
|
641
|
+
version: 0.3.3
|
|
642
|
+
compliance:
|
|
643
|
+
level: standard
|
|
644
|
+
observability:
|
|
645
|
+
tracing: true
|
|
646
|
+
metrics: true
|
|
647
|
+
logging: true
|
|
648
|
+
x-ossa:
|
|
649
|
+
version: 0.5.0
|
|
650
|
+
agent:
|
|
651
|
+
id: agent-identity-api
|
|
652
|
+
type: governor
|