@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.
Files changed (125) hide show
  1. package/.version.json +3 -3
  2. package/CHANGELOG.md +8 -8
  3. package/README.md +68 -58
  4. package/bin/postinstall +0 -0
  5. package/dist/.version.json +3 -3
  6. package/dist/adapters/claude-code/adapter.js +2 -2
  7. package/dist/adapters/docker/generators.js +19 -19
  8. package/dist/adapters/drupal/generator.js +76 -76
  9. package/dist/adapters/openai-agents/adapter.js +2 -2
  10. package/dist/cli/schema-driven/schema-loader.js +5 -5
  11. package/dist/mcp-server/__tests__/mcp-server.spec.js +20 -11
  12. package/dist/mcp-server/index.js +0 -0
  13. package/dist/package.json +24 -11
  14. package/dist/services/export/langchain/langchain-exporter.js +2 -2
  15. package/dist/services/export/langchain/memory-generator.js +2 -2
  16. package/dist/services/export/testing/test-generator.js +1 -1
  17. package/dist/services/taxonomy-service.d.ts +3 -3
  18. package/dist/skills/test-skill/package.json +1 -1
  19. package/dist/spec/extensions/role-manifest.md +188 -0
  20. package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
  21. package/dist/spec/v0.5/agent.schema.json +2 -1
  22. package/dist/spec/v0.5/extensions/mcp/README.md +1 -1
  23. package/dist/spec/v0.5/role.schema.json +268 -0
  24. package/dist/types/index.d.ts +2 -0
  25. package/dist/types/index.js +2 -0
  26. package/dist/types/role.d.ts +126 -0
  27. package/dist/types/role.js +38 -0
  28. package/dist/validation/validator.js +1 -1
  29. package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
  30. package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
  31. package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
  32. package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
  33. package/examples/agents/security-audit-agent.ossa.yaml +234 -0
  34. package/examples/agentscope/react-assistant/agent.ossa.yaml +36 -32
  35. package/examples/drupal/content-moderator.ossa.yaml +2 -2
  36. package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
  37. package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
  38. package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
  39. package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
  40. package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
  41. package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
  42. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  43. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  44. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
  45. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  46. package/examples/getting-started/README.md +3 -3
  47. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  48. package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
  49. package/examples/hierarchical-agent.ossa.yaml +10 -53
  50. package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
  51. package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
  52. package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
  53. package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
  54. package/examples/pipeline-agent.ossa.yaml +3 -3
  55. package/examples/platform-specific/claude-code-subagent.yaml +1 -1
  56. package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
  57. package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
  58. package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
  59. package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
  60. package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
  61. package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
  62. package/examples/reference-implementations/python-client/examples/basic_usage.py +0 -0
  63. package/examples/reference-implementations/python-client/examples/publish_agent.py +0 -0
  64. package/examples/roles/drupal-developer.role.yaml +37 -0
  65. package/examples/roles/platform-operator.role.yaml +28 -0
  66. package/examples/roles/security-auditor.role.yaml +27 -0
  67. package/examples/swarm-agent.ossa.yaml +13 -51
  68. package/examples/team-agent.ossa.yaml +12 -61
  69. package/examples/team-lead-teammate.ossa.yaml +12 -17
  70. package/openapi/agent-communication.yaml +260 -212
  71. package/openapi/agent-crud.yaml +217 -187
  72. package/openapi/agent-discovery.yaml +119 -81
  73. package/openapi/agent-identity.yaml +219 -187
  74. package/openapi/agent-taxonomy.yaml +95 -38
  75. package/openapi/agents-md-service.yaml +103 -30
  76. package/openapi/cli/openapi.yaml +147 -40
  77. package/openapi/core/ossa-core-api.openapi.yaml +327 -271
  78. package/openapi/core/ossa-registry-api.openapi.yaml +298 -235
  79. package/openapi/core/ossa-registry.openapi.yaml +299 -159
  80. package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
  81. package/openapi/daemon-api.openapi.yaml +323 -181
  82. package/openapi/dev-cli/openapi.yaml +137 -113
  83. package/openapi/github-sync.yaml +62 -19
  84. package/openapi/marketplace-plugin.openapi.yaml +539 -466
  85. package/openapi/ossa-api.openapi.yaml +354 -213
  86. package/openapi/ossa-cli-enhancements.openapi.yaml +108 -89
  87. package/openapi/ossa-cli.yaml +260 -184
  88. package/openapi/protocols/sse-streams.yaml +66 -74
  89. package/openapi/protocols/websocket-events.yaml +61 -54
  90. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
  91. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
  92. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
  93. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
  94. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
  95. package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
  96. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
  97. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
  98. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
  99. package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
  100. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
  101. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
  102. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
  103. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
  104. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
  105. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
  106. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
  107. package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
  108. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
  109. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
  110. package/openapi/release-automation.openapi.yaml +47 -13
  111. package/openapi/schemas/common/agent.yaml +30 -29
  112. package/openapi/schemas/common/errors.yaml +13 -3
  113. package/openapi/schemas/common/metadata.yaml +22 -7
  114. package/openapi/schemas/common/pagination.yaml +18 -6
  115. package/openapi/schemas/common/security.yaml +13 -5
  116. package/openapi/schemas/index.yaml +49 -42
  117. package/openapi/uadp-asyncapi.yaml +4 -2
  118. package/openapi/uadp-openapi.yaml +243 -165
  119. package/openapi/version-management.openapi.yaml +142 -135
  120. package/package.json +114 -103
  121. package/spec/extensions/role-manifest.md +188 -0
  122. package/spec/v0.4/extensions/mcp/README.md +1 -1
  123. package/spec/v0.5/agent.schema.json +2 -1
  124. package/spec/v0.5/extensions/mcp/README.md +1 -1
  125. 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: [Authentication]
59
+ tags:
60
+ - Authentication
65
61
  operationId: authenticateAgent
66
- security: [] # Authentication endpoint doesn't require auth
62
+ security: []
67
63
  parameters:
68
- - $ref: '#/components/parameters/AgentId'
64
+ - $ref: "#/components/parameters/AgentId"
69
65
  requestBody:
70
66
  required: true
71
67
  content:
72
68
  application/json:
73
69
  schema:
74
- $ref: '#/components/schemas/AuthenticationRequest'
70
+ $ref: "#/components/schemas/AuthenticationRequest"
75
71
  examples:
76
72
  apiKeyAuth:
77
73
  summary: API Key Authentication
78
74
  value:
79
- agent_id: "data-processor-agent"
75
+ agent_id: data-processor-agent
80
76
  credential:
81
- type: "api_key"
82
- api_key: "ossa_ak_1234567890abcdef1234567890abcdef"
83
- scope: ["read", "execute"]
77
+ type: api_key
78
+ api_key: ossa_ak_1234567890abcdef1234567890abcdef
79
+ scope:
80
+ - read
81
+ - execute
84
82
  context:
85
- tenant_id: "tenant-123"
86
- user_id: "user-456"
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: "analytics-agent"
88
+ agent_id: analytics-agent
91
89
  credential:
92
- type: "oauth2"
93
- access_token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
94
- token_type: "Bearer"
95
- scope: ["read", "write", "execute"]
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: "secure-agent"
100
+ agent_id: secure-agent
100
101
  credential:
101
- type: "mtls"
102
- certificate: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t..."
103
- scope: ["admin"]
102
+ type: mtls
103
+ certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t...
104
+ scope:
105
+ - admin
104
106
  responses:
105
- '200':
107
+ "200":
106
108
  description: Authentication successful
107
109
  content:
108
110
  application/json:
109
111
  schema:
110
- $ref: '#/components/schemas/TokenResponse'
112
+ $ref: "#/components/schemas/TokenResponse"
111
113
  examples:
112
114
  success:
113
115
  summary: Successful authentication
114
116
  value:
115
- access_token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZ2VudC0xMjMiLCJpYXQiOjE2MDk0NTkyMDB9.SflKxwRJSM..."
116
- token_type: "Bearer"
117
+ access_token: example-access-token-redacted
118
+ token_type: Bearer
117
119
  expires_in: 3600
118
- scope: ["read", "execute"]
119
- instance_id: "550e8400-e29b-41d4-a716-446655440000"
120
- issued_at: "2025-12-18T10:00:00Z"
121
- token_id: "650e8400-e29b-41d4-a716-446655440001"
122
- '401':
123
- $ref: '#/components/responses/Unauthorized'
124
- '400':
125
- $ref: '#/components/responses/BadRequest'
126
- '429':
127
- $ref: '#/components/responses/TooManyRequests'
128
- '500':
129
- $ref: '#/components/responses/InternalServerError'
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: [Identity]
144
+ tags:
145
+ - Identity
138
146
  operationId: getAgentIdentity
139
147
  parameters:
140
- - $ref: '#/components/parameters/AgentId'
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
- '200':
156
+ "200":
149
157
  description: Agent identity retrieved
150
158
  content:
151
159
  application/json:
152
160
  schema:
153
- $ref: '#/components/schemas/AgentIdentity'
161
+ $ref: "#/components/schemas/AgentIdentity"
154
162
  examples:
155
163
  activeAgent:
156
164
  summary: Active agent instance
157
165
  value:
158
- agent_id: "data-processor-agent"
159
- instance_id: "550e8400-e29b-41d4-a716-446655440000"
160
- version: "ossa/v0.3.3"
161
- kind: "Agent"
162
- status: "active"
163
- tenant_id: "tenant-123"
164
- user_id: "user-456"
165
- trace_id: "4bf92f3577b34da6a3ce929d0e0e4736"
166
- span_id: "00f067aa0ba902b7"
167
- created_at: "2025-12-18T09:00:00Z"
168
- updated_at: "2025-12-18T10:00:00Z"
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: "production"
172
- version: "1.0.0"
179
+ environment: production
180
+ version: 1.0.0
173
181
  annotations:
174
- deployed_by: "buildkit-cli"
175
- '401':
176
- $ref: '#/components/responses/Unauthorized'
177
- '404':
178
- $ref: '#/components/responses/NotFound'
179
- '500':
180
- $ref: '#/components/responses/InternalServerError'
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: [Tokens]
196
+ tags:
197
+ - Tokens
189
198
  operationId: issueToken
190
199
  parameters:
191
- - $ref: '#/components/parameters/AgentId'
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: ["read", "execute"]
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: "550e8400-e29b-41d4-a716-446655440000"
222
- scope: ["read", "write", "execute"]
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
- '201':
239
+ "201":
226
240
  description: Token issued successfully
227
241
  content:
228
242
  application/json:
229
243
  schema:
230
- $ref: '#/components/schemas/TokenResponse'
231
- '400':
232
- $ref: '#/components/responses/BadRequest'
233
- '401':
234
- $ref: '#/components/responses/Unauthorized'
235
- '403':
236
- $ref: '#/components/responses/Forbidden'
237
- '429':
238
- $ref: '#/components/responses/TooManyRequests'
239
- '500':
240
- $ref: '#/components/responses/InternalServerError'
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: [Tokens]
264
+ tags:
265
+ - Tokens
248
266
  operationId: listTokens
249
267
  parameters:
250
- - $ref: '#/components/parameters/AgentId'
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
- '200':
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
- '401':
311
- $ref: '#/components/responses/Unauthorized'
312
- '500':
313
- $ref: '#/components/responses/InternalServerError'
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: [Tokens]
339
+ tags:
340
+ - Tokens
322
341
  operationId: revokeToken
323
342
  parameters:
324
- - $ref: '#/components/parameters/AgentId'
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: '#/components/schemas/TokenRevocationRequest'
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: "650e8400-e29b-41d4-a716-446655440001"
343
- reason: "security_breach"
361
+ token_id: 650e8400-e29b-41d4-a716-446655440001
362
+ reason: security_breach
344
363
  responses:
345
- '200':
364
+ "200":
346
365
  description: Token revoked successfully
347
366
  content:
348
367
  application/json:
349
368
  schema:
350
- $ref: '#/components/schemas/TokenRevocationResponse'
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: "650e8400-e29b-41d4-a716-446655440001"
357
- revoked_at: "2025-12-18T11:00:00Z"
358
- '401':
359
- $ref: '#/components/responses/Unauthorized'
360
- '404':
361
- $ref: '#/components/responses/NotFound'
362
- '500':
363
- $ref: '#/components/responses/InternalServerError'
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: [Identity]
393
+ tags:
394
+ - Identity
372
395
  operationId: getSecurityContext
373
396
  parameters:
374
- - $ref: '#/components/parameters/AgentId'
397
+ - $ref: "#/components/parameters/AgentId"
375
398
  responses:
376
- '200':
399
+ "200":
377
400
  description: Security context retrieved
378
401
  content:
379
402
  application/json:
380
403
  schema:
381
- $ref: '#/components/schemas/SecurityContext'
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: "data-processor-agent"
389
- instance_id: "550e8400-e29b-41d4-a716-446655440000"
390
- tenant_id: "tenant-123"
391
- user_id: "user-456"
392
- scopes: ["read", "write", "execute"]
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: "workflows"
421
+ - resource_type: workflows
396
422
  resource_id: "*"
397
- actions: ["read", "execute"]
398
- - resource_type: "data"
399
- resource_id: "dataset-123"
400
- actions: ["read", "write"]
401
- policy_version: "v1.0.0"
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: "AES-256-GCM"
439
+ algorithm: AES-256-GCM
410
440
  compliance:
411
441
  fips_mode: false
412
- audit_level: "detailed"
442
+ audit_level: detailed
413
443
  retention_days: 90
414
444
  session:
415
- session_id: "750e8400-e29b-41d4-a716-446655440002"
416
- created_at: "2025-12-18T10:00:00Z"
417
- expires_at: "2025-12-18T11:00:00Z"
418
- last_activity: "2025-12-18T10:30:00Z"
419
- '401':
420
- $ref: '#/components/responses/Unauthorized'
421
- '500':
422
- $ref: '#/components/responses/InternalServerError'
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: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
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: "data-processor-agent"
492
+ value: data-processor-agent
464
493
  summary: Data processing agent
465
494
  analyticsAgent:
466
- value: "analytics-agent"
495
+ value: analytics-agent
467
496
  summary: Analytics agent
468
-
469
497
  schemas:
470
498
  AgentIdentity:
471
- $ref: 'https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/AgentIdentity'
472
-
499
+ $ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/AgentIdentity
473
500
  AuthenticationRequest:
474
- $ref: 'https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/AuthenticationRequest'
475
-
501
+ $ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/AuthenticationRequest
476
502
  TokenResponse:
477
- $ref: 'https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenResponse'
478
-
503
+ $ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenResponse
479
504
  SecurityContext:
480
- $ref: 'https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/SecurityContext'
481
-
505
+ $ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/SecurityContext
482
506
  TokenRevocationRequest:
483
- $ref: 'https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenRevocationRequest'
484
-
507
+ $ref: https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenRevocationRequest
485
508
  TokenRevocationResponse:
486
- $ref: 'https://openstandardagents.org/schemas/v0.3.3/identity.json#/definitions/TokenRevocationResponse'
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: '#/components/schemas/Error'
540
+ $ref: "#/components/schemas/Error"
520
541
  examples:
521
542
  invalidCredentials:
522
543
  summary: Invalid credentials format
523
544
  value:
524
- error: "invalid_request"
525
- message: "Invalid credential format"
545
+ error: invalid_request
546
+ message: Invalid credential format
526
547
  details:
527
- field: "credential.api_key"
528
- reason: "Must be at least 32 characters"
529
- timestamp: "2025-12-18T10:00:00Z"
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: '#/components/schemas/Error'
556
+ $ref: "#/components/schemas/Error"
537
557
  examples:
538
558
  invalidToken:
539
559
  summary: Invalid or expired token
540
560
  value:
541
- error: "unauthorized"
542
- message: "Invalid or expired authentication token"
543
- timestamp: "2025-12-18T10:00:00Z"
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: '#/components/schemas/Error'
569
+ $ref: "#/components/schemas/Error"
551
570
  examples:
552
571
  insufficientScope:
553
572
  summary: Insufficient scope
554
573
  value:
555
- error: "forbidden"
556
- message: "Insufficient permissions for requested scopes"
574
+ error: forbidden
575
+ message: Insufficient permissions for requested scopes
557
576
  details:
558
- requested: ["admin"]
559
- granted: ["read", "execute"]
560
- timestamp: "2025-12-18T10:00:00Z"
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: '#/components/schemas/Error'
588
+ $ref: "#/components/schemas/Error"
568
589
  examples:
569
590
  agentNotFound:
570
591
  summary: Agent not found
571
592
  value:
572
- error: "not_found"
573
- message: "Agent instance not found"
593
+ error: not_found
594
+ message: Agent instance not found
574
595
  details:
575
- agent_id: "unknown-agent"
576
- timestamp: "2025-12-18T10:00:00Z"
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: '#/components/schemas/Error'
616
+ $ref: "#/components/schemas/Error"
597
617
  examples:
598
618
  rateLimitExceeded:
599
619
  summary: Rate limit exceeded
600
620
  value:
601
- error: "rate_limit_exceeded"
602
- message: "Too many authentication requests. Please try again later."
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: "2025-12-18T10:00:00Z"
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: '#/components/schemas/Error'
631
+ $ref: "#/components/schemas/Error"
613
632
  examples:
614
633
  serverError:
615
634
  summary: Internal server error
616
635
  value:
617
- error: "internal_server_error"
618
- message: "An unexpected error occurred"
619
- trace_id: "4bf92f3577b34da6a3ce929d0e0e4736"
620
- timestamp: "2025-12-18T10:00:00Z"
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