facetted-interfaces/history/FIAM_v0.2_Draft6/OPENAPI-INGEST-v0.2.md
tegwick 1353267569 Establish FIAM repository governance baseline
Assistant: codex
Assistant-Model: gpt-5.6-luna
Assistant-Session: 01a087b0-7b1e-7531-8ef3-6525ebaf7ee7
2026-09-09 21:53:43 +02:00

87 lines
2.8 KiB
Markdown

# FIAM v0.2 — OpenAPI Declared-Ingest Profile (draft.4)
## Intent
Turn an OpenAPI 3.x description into a FIAM **declared architecture model** while preserving the distinction between architectural entities and the source artifact.
The importer is architecture-oriented, not a lossless OpenAPI converter. Detailed schema semantics remain in the OpenAPI Artifact.
## Mapping
| OpenAPI construct | FIAM expression |
|---|---|
| API document | `Artifact` (`fiam.artifact.api-description`) |
| API/service | `SystemNode` + offered `Port` + `InterfaceContract` |
| path + HTTP method | `Operation` |
| server URL | `Endpoint` |
| HTTP realization | `Binding` + communication stack |
| path template | logical-selection `InformationResource` |
| component or inline schema | `InformationShape` |
| response/request schema | Shape-participation relations |
| media type | relation-scoped `representation` |
| object/array composition | coarse `embeds-shape` / `element-shape` |
| source location | assertion Evidence locator |
| HTTP method | declared property assertion |
| generic HTTP family | declared `communication-protocol` assertion |
| `components.securitySchemes` | FIAM Security profiles |
| top-level / operation `security` | contract/operation Security requirements |
## Evidence
Relations and material property facts emitted from OpenAPI carry declared evidence with the source Artifact and JSON-pointer locator.
Observer:
```text
openapi-ingest/v0.2-draft.4
```
## Transport conservatism
An `https://` server URL declares secure HTTP addressing. It does **not** determine TCP versus QUIC, because the OpenAPI document normally does not state the negotiated HTTP version/transport.
Draft.4 therefore emits:
```text
HTTP
TLS
```
for an HTTPS declaration, but does not infer TCP.
This preserves the transport-conservative behavior introduced after draft.1.
## Shape identity
The importer reuses a FIAM Shape for repeated references to the same OpenAPI component identity. Different components remain distinct even when structurally identical.
Structural fingerprint equality emits only:
```text
Shape A --corresponds-to--> Shape B
```
never automatic `same-entity-as`.
## Current scope
Supported:
- OpenAPI 3.x YAML/JSON;
- component and common inline Shapes;
- coarse shape composition;
- request/response shape participation;
- common representations;
- server endpoints and HTTP/TLS stack;
- path-template Resources;
- evidence-backed HTTP method and generic protocol facts;
- structural-fingerprint candidate alignment;
- local OpenAPI security schemes and Security Requirement composition (see `OPENAPI-SECURITY-INGEST-v0.2.md`).
Not yet a goal:
- lossless parameter/schema conversion;
- complete external `$ref` resolution;
- full callback/webhook flows;
- automatic identity merge;
- schema fields in FIAM Core.