Skip to content

Commit 2a7cb75

Browse files
committed
provide more metadata for events in schemas
Signed-off-by: Lance-Drane <Lance-Drane@users.noreply.github.com>
1 parent acd3218 commit 2a7cb75

3 files changed

Lines changed: 65 additions & 23 deletions

File tree

src/intersect_sdk/_internal/schema.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,16 @@ def _add_events(
308308
'serialization',
309309
)
310310
_ensure_title_in_schema(event_schema, event_key)
311+
event_schemas[event_key] = {
312+
'schemaFormat': f'application/vnd.aai.asyncapi+json;version={ASYNCAPI_VERSION}',
313+
'contentType': event_definition.content_type,
314+
'payload': event_schema,
315+
'traits': {'$ref': '#/components/messageTraits/commonHeaders'},
316+
}
311317
if event_definition.event_documentation:
312-
event_schema['description'] = event_definition.event_documentation
313-
event_schemas[event_key] = event_schema
318+
event_schemas[event_key]['description'] = (
319+
event_definition.event_documentation
320+
)
314321
event_metadatas[event_key] = EventMetadata(
315322
type=event_definition.event_type,
316323
type_adapter=event_adapter,

tests/fixtures/example_schema.json

Lines changed: 55 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -838,38 +838,73 @@
838838
},
839839
"events": {
840840
"union": {
841-
"anyOf": [
842-
{
843-
"type": "integer"
844-
},
845-
{
846-
"type": "string"
847-
}
848-
],
849-
"title": "union",
841+
"schemaFormat": "application/vnd.aai.asyncapi+json;version=2.6.0",
842+
"contentType": "application/json",
843+
"payload": {
844+
"anyOf": [
845+
{
846+
"type": "integer"
847+
},
848+
{
849+
"type": "string"
850+
}
851+
],
852+
"title": "union"
853+
},
854+
"traits": {
855+
"$ref": "#/components/messageTraits/commonHeaders"
856+
},
850857
"description": "Generic example of how to do a union event"
851858
},
852859
"int": {
853-
"type": "integer",
854-
"title": "int",
855-
"description": "Generic integer event"
860+
"schemaFormat": "application/vnd.aai.asyncapi+json;version=2.6.0",
861+
"contentType": "application/json",
862+
"payload": {
863+
"description": "Generic integer event",
864+
"type": "integer",
865+
"title": "int"
866+
},
867+
"traits": {
868+
"$ref": "#/components/messageTraits/commonHeaders"
869+
}
856870
},
857871
"str": {
858-
"type": "string",
859-
"title": "str",
872+
"schemaFormat": "application/vnd.aai.asyncapi+json;version=2.6.0",
873+
"contentType": "application/json",
874+
"payload": {
875+
"type": "string",
876+
"title": "str"
877+
},
878+
"traits": {
879+
"$ref": "#/components/messageTraits/commonHeaders"
880+
},
860881
"description": "Generic string event"
861882
},
862883
"float": {
863-
"type": "number",
864-
"title": "float",
884+
"schemaFormat": "application/vnd.aai.asyncapi+json;version=2.6.0",
885+
"contentType": "application/json",
886+
"payload": {
887+
"type": "number",
888+
"title": "float"
889+
},
890+
"traits": {
891+
"$ref": "#/components/messageTraits/commonHeaders"
892+
},
865893
"description": "Generic float event"
866894
},
867895
"list_float": {
868-
"items": {
869-
"type": "number"
896+
"schemaFormat": "application/vnd.aai.asyncapi+json;version=2.6.0",
897+
"contentType": "application/json",
898+
"payload": {
899+
"items": {
900+
"type": "number"
901+
},
902+
"type": "array",
903+
"title": "list_float"
904+
},
905+
"traits": {
906+
"$ref": "#/components/messageTraits/commonHeaders"
870907
},
871-
"type": "array",
872-
"title": "list_float",
873908
"description": "generic list of floats event"
874909
}
875910
},

tests/fixtures/example_schema.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ class DummyCapabilityImplementation(IntersectBaseCapabilityImplementation):
227227
event_type=(int | str), event_documentation='Generic example of how to do a union event'
228228
),
229229
'int': IntersectEventDefinition(
230-
event_type=int, event_documentation='Generic integer event'
230+
event_type=Annotated[int, Field(description='Generic integer event')]
231231
),
232232
'str': IntersectEventDefinition(event_type=str, event_documentation='Generic string event'),
233233
'float': IntersectEventDefinition(

0 commit comments

Comments
 (0)