Assistant: codex Assistant-Model: gpt-5.6-luna Assistant-Session: 01a087b0-7b1e-7531-8ef3-6525ebaf7ee7
239 lines
6.8 KiB
YAML
239 lines
6.8 KiB
YAML
fiam_version: '0.2'
|
|
instance:
|
|
id: specimen.graphql.https
|
|
kind: specimen
|
|
title: GraphQL application interface over HTTPS
|
|
status: provisional
|
|
intent: Separate GraphQL execution semantics from its HTTP realization.
|
|
nodes:
|
|
- id: node.web-client
|
|
kind: system-node
|
|
name: Web Client
|
|
node_type: fiam.node-type.application
|
|
- id: node.graphql-service
|
|
kind: system-node
|
|
name: GraphQL Service
|
|
node_type: fiam.node-type.service
|
|
ports:
|
|
- id: port.client.graphql
|
|
owner: node.web-client
|
|
participations:
|
|
- contract: contract.graphql.catalog
|
|
mode: requires
|
|
roles:
|
|
- fiam.role.client
|
|
- id: port.service.graphql
|
|
owner: node.graphql-service
|
|
participations:
|
|
- contract: contract.graphql.catalog
|
|
mode: offers
|
|
roles:
|
|
- fiam.role.server
|
|
contracts:
|
|
- id: contract.graphql.catalog
|
|
kind: interface-contract
|
|
purpose:
|
|
- fiam.purpose.query
|
|
- fiam.purpose.mutation
|
|
contract_forms:
|
|
- fiam.contract-form.graphql-schema
|
|
operations:
|
|
- id: operation.graphql.query
|
|
name: query
|
|
interaction_style: fiam.interaction-style.query
|
|
effect: fiam.effect.read
|
|
- id: operation.graphql.mutation
|
|
name: mutation
|
|
interaction_style: fiam.interaction-style.command
|
|
effect: fiam.effect.write
|
|
endpoints:
|
|
- id: endpoint.graphql
|
|
kind: endpoint
|
|
address: https://api.example.test/graphql
|
|
address_scheme: fiam.address-scheme.https-url
|
|
bindings:
|
|
- id: binding.graphql.https
|
|
contract: contract.graphql.catalog
|
|
provider_port: port.service.graphql
|
|
consumer_ports:
|
|
- port.client.graphql
|
|
binding_profile: fiam.binding-profile.graphql-over-http
|
|
communication_stack:
|
|
- role: fiam.stack-role.application-semantics
|
|
term: fiam.tech.graphql
|
|
- role: fiam.stack-role.application-transfer-protocol
|
|
term: fiam.protocol.http
|
|
- role: fiam.stack-role.security-protocol
|
|
term: fiam.protocol.tls
|
|
- role: fiam.stack-role.transport
|
|
term: fiam.transport.tcp
|
|
endpoints:
|
|
- endpoint.graphql
|
|
interactions:
|
|
- id: interaction.graphql-query
|
|
operation: operation.graphql.query
|
|
binding: binding.graphql.https
|
|
temporal_semantics: fiam.temporal.synchronous
|
|
assertions:
|
|
- id: assertion.graphql-transport-independence
|
|
subject: contract.graphql.catalog
|
|
predicate: fiam.property.transport-independent
|
|
value: true
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: GraphQL specification
|
|
confidence: 1.0
|
|
assertion_kind: property
|
|
polarity: asserted
|
|
- id: assertion.graphql.request-embeds-document
|
|
assertion_kind: relation
|
|
subject: shape.graphql.request
|
|
predicate: fiam.relation.embeds-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.document
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
slot: query
|
|
role: fiam.shape-role.payload
|
|
- id: assertion.graphql.response-embeds-item
|
|
assertion_kind: relation
|
|
subject: shape.graphql.response
|
|
predicate: fiam.relation.embeds-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.catalog-item
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
slot: data.catalog
|
|
role: fiam.shape-role.payload
|
|
- id: assertion.graphql.query-accepts
|
|
assertion_kind: relation
|
|
subject: operation.graphql.query
|
|
predicate: fiam.relation.accepts-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.request
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.request
|
|
- id: assertion.graphql.query-produces
|
|
assertion_kind: relation
|
|
subject: operation.graphql.query
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.response
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
- id: assertion.graphql.binding-accepts-json
|
|
assertion_kind: relation
|
|
subject: binding.graphql.https
|
|
predicate: fiam.relation.accepts-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.request
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.request
|
|
representation: fiam.representation.json
|
|
operation_ref: operation.graphql.query
|
|
- id: assertion.graphql.binding-produces-json
|
|
assertion_kind: relation
|
|
subject: binding.graphql.https
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.response
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
operation_ref: operation.graphql.query
|
|
- id: assertion.graphql.interaction-produces-json
|
|
assertion_kind: relation
|
|
subject: interaction.graphql-query
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.graphql.response
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
tests:
|
|
stresses:
|
|
- execution-language-vs-transport
|
|
- operation-level-semantics
|
|
notes:
|
|
- GraphQL is modeled independently of HTTP.
|
|
expected_properties:
|
|
- id: check.evidence
|
|
kind: all-assertions-have-evidence
|
|
- id: check.no-deprecated
|
|
kind: no-deprecated-terms
|
|
- id: check.no-legacy-representations
|
|
kind: no-legacy-representations
|
|
- id: check.graphql.types
|
|
kind: entity-exists
|
|
ref: shape.graphql.catalog-item
|
|
entity_kind: information-shape
|
|
- id: check.graphql.slot
|
|
kind: relation-exists
|
|
subject: shape.graphql.response
|
|
predicate: fiam.relation.embeds-shape
|
|
object_ref: shape.graphql.catalog-item
|
|
facets:
|
|
slot: data.catalog
|
|
role: fiam.shape-role.payload
|
|
- id: check.graphql.binding-json
|
|
kind: relation-exists
|
|
subject: binding.graphql.https
|
|
predicate: fiam.relation.produces-shape
|
|
object_ref: shape.graphql.response
|
|
facets:
|
|
representation: fiam.representation.json
|
|
information_shapes:
|
|
- id: shape.graphql.request
|
|
kind: information-shape
|
|
name: GraphQL request envelope
|
|
shape_kind: fiam.information-shape.envelope
|
|
- id: shape.graphql.document
|
|
kind: information-shape
|
|
name: GraphQL executable document
|
|
shape_kind: fiam.information-shape.opaque
|
|
facets:
|
|
semantic_standard: fiam.tech.graphql
|
|
- id: shape.graphql.response
|
|
kind: information-shape
|
|
name: GraphQL response envelope
|
|
shape_kind: fiam.information-shape.envelope
|
|
- id: shape.graphql.catalog-item
|
|
kind: information-shape
|
|
name: Catalog item
|
|
shape_kind: fiam.information-shape.object
|
|
artifacts:
|
|
- id: artifact.graphql.schema
|
|
kind: artifact
|
|
name: schema.graphql
|
|
artifact_type: fiam.artifact.graphql-schema
|
|
describes:
|
|
- contract.graphql.catalog
|
|
- shape.graphql.catalog-item
|
|
- shape.graphql.response
|
|
locator: repo://graphql/schema.graphql
|