Andromeda implements NGSI-LD v1.9.1. This page lists every other standard Andromeda relies on and says what Andromeda takes from each. Most are cited by NGSI-LD v1.9.1 itself. The rest cover places where NGSI-LD v1.9.1 leaves the choice to the implementation. Links go to the publisher.
Some RFCs that NGSI-LD v1.9.1 cites have since been obsoleted. Their entries name the successor, and Andromeda follows the successor as well. Clause numbers on this page refer to NGSI-LD v1.9.1 unless an entry says otherwise.
-
NGSI-LD v1.9.1 (2025-07), NGSI-LD API
The specification Andromeda implements, covering operations, the query language, temporal and geospatial semantics, subscriptions, distribution and the error model. Andromeda's own additions are extensions, and each one is off by default.
-
ETSI GS CIM 006 v1.3.1, NGSI-LD Information Model
Background for the entity, property and relationship concepts that NGSI-LD v1.9.1 clause 4 builds on. Andromeda implements the model only as NGSI-LD v1.9.1 states it.
-
ETSI GS CIM 004 v1.1.2, API
The first NGSI-LD API specification, superseded by NGSI-LD v1.9.1. Andromeda does not implement it. It is listed for the clauses NGSI-LD v1.9.1 inherited from it.
-
ETSI GS CIM 019 v1.2.1, Provenance information
Andromeda treats a signature proof (annex C.11) as ordinary data. It stores and returns the proof, and it neither produces nor verifies a signature.
-
ETSI GS CIM 047 v1.1.2, OpenAPI specification
A machine-readable description of the API Andromeda serves. Use it to generate clients.
-
ETSI GS CIM 050 v1.1.1, Aligning with geo-information
Proposes coordRefSys and four more georel relations (clause 6.6). Andromeda implements none of them. Geometries are WGS 84, and geoqueries use only the relations of NGSI-LD v1.9.1 clause 4.10.
Andromeda is tested against every case of the official ETSI NGSI-LD test suite. These documents define that suite.
-
ETSI GS CIM 012 v3.1.1, Test Suite Structure
How the suite is organised into groups.
-
ETSI GS CIM 013 v3.1.1, Test Purposes Descriptions
What each test checks, per NGSI-LD v1.9.1 operation.
-
ETSI GS CIM 014 v3.1.1, Test Suite
The executable suite.
-
ETSI GS CIM 016 v1.1.1, Testing Framework Template
The template the test purposes follow.
-
ETSI GS CIM 027 v2.1.1, Test Purposes Description Language
The notation the test purposes are written in.
-
ETSI GS CIM 029 v2.1.1, Implementation Conformance Statement
The form an implementation fills in to declare which optional features it supports.
-
ETSI GS CIM 053 v1.1.1, Distributed Operations Test Purposes
Test purposes for registrations, forwarding and federation.
-
ETSI GS CIM 054 v1.1.1, Interoperability Tests
Tests run between two implementations.
-
RFC 9110, HTTP semantics
Methods, status codes, Content-Range, Retry-After, conditional requests and content negotiation. It replaces RFC 7231, RFC 7232, RFC 7233, RFC 7235 and RFC 2818.
-
RFC 9111, HTTP caching
Cache-Control and Expires. It replaces RFC 7234.
-
RFC 9112, HTTP/1.1
Message syntax and routing. It replaces the parts of RFC 7230 that RFC 9110 doesn't.
-
RFC 9113, HTTP/2
The protocol the TCP listener negotiates. It replaces RFC 7540 and RFC 8740.
-
RFC 7540, HTTP/2 as first published
Replaced by RFC 9113.
-
RFC 9114, HTTP/3
The protocol the HTTP/3 listener serves over QUIC.
-
RFC 9000, QUIC
The transport under HTTP/3.
-
RFC 9001, Using TLS to secure QUIC
The TLS 1.3 handshake that secures QUIC. The HTTP/3 listener uses TLS 1.3 only.
-
RFC 7838, HTTP Alternative Services
The Alt-Svc header on the TCP responses, which advertises the HTTP/3 listener on the same host and port.
-
RFC 7239, Forwarded
The standards-track field a trusted proxy may set to describe the original request. Andromeda reads it under the forwarded-header settings.
-
RFC 6797, HTTP Strict Transport Security
The Strict-Transport-Security header Andromeda sends, with a max-age of 180 days (section 6.1.1).
-
RFC 7230, HTTP/1.1 message syntax and routing
Header field names are compared case-insensitively wherever Andromeda reads one. Obsoleted by RFC 9110 and RFC 9112.
-
RFC 7231, HTTP/1.1 semantics and content
Methods, status codes and content negotiation. When the datastore cannot be reached, Andromeda answers 503 with Retry-After (section 6.6.4). Obsoleted by RFC 9110.
-
RFC 7232, conditional requests
If-None-Match is evaluated against each @context document Andromeda serves. Obsoleted by RFC 9110.
-
RFC 7233, range requests
Content-Range on a partial (206) temporal response, with the unit DateTime (clause 6.3.10). Obsoleted by RFC 9110.
-
RFC 7234, caching
Cache-Control (max-age, s-maxage) and Expires on a fetched remote @context decide how long Andromeda caches it. Obsoleted by RFC 9111.
-
RFC 7240, Prefer
Read on requests as clause 6.3.6 describes. A batch operation sent with respond-async is answered before its temporal history is applied.
-
RFC 8288, Web Linking
The Link header that carries the user @context in requests and responses, and the rel="next" and rel="prev" links of a paged response.
-
RFC 6906, the profile link relation
The profile link of clause 6.3.21, which names the NGSI-LD API version a client writes against. Andromeda adapts its answer to that version.
-
RFC 2818, HTTP over TLS
Clause 6.2 requires HTTPS. Andromeda terminates TLS itself or runs behind a reverse proxy that does. Obsoleted by RFC 9110.
-
RFC 5246, TLS 1.2
Clause 6.2 requires TLS 1.2. The native TLS listener admits TLS 1.2 and 1.3. HTTP/3 uses TLS 1.3 only. Obsoleted by RFC 8446 and RFC 9846.
-
RFC 8446, TLS 1.3
TLS 1.3, the version the native TLS listener and HTTP/3 both use. Obsoleted by RFC 9846.
-
RFC 9846, TLS 1.3
The successor to RFC 8446, which also obsoletes RFC 5246. Andromeda follows it as well.
-
WHATWG URL Standard, URL parsing
The parser behind the Url type. It isn't a URI validator, so Andromeda also checks the URI grammar of RFC 3986.
-
RFC 9562, Universally Unique IDentifiers
The UUIDs Andromeda mints for identifiers, with the version chosen per use.
-
RFC 4122, UUID URN namespace
The UUID form RFC 9562 replaces.
-
RFC 3986, URI generic syntax
The syntax of every identifier and every Relationship target. Andromeda stores and serves a target exactly as written, because a percent-encoded reserved character is not the same as the character itself (section 6.2.2.2).
-
RFC 3987, Internationalized Resource Identifiers
IRIs are accepted wherever NGSI-LD v1.9.1 asks for a URI (clause 4.6.2, NOTE 2). Their grammar is checked by iri-rs, which also explains the comparison rungs of section 5.3 and which one Andromeda uses.
-
RFC 8141, URN syntax
Identifiers Andromeda mints are urn:ngsi-ld: URNs. Two URNs are equal when they differ only in the letter case of urn and the namespace identifier (section 3.1). The namespace-specific string stays case-sensitive.
-
RFC 8259, JSON
The syntax of every request and response body. In q, string equality compares code units (section 8.3), as clause 4.9 requires, and a quoted value is a JSON string with its escapes. String ordering follows the Unicode Collation Algorithm instead (see Query language). The JSON-LD processor reads JSON with jstrict, which keeps the member order and repeated names this RFC leaves to the receiver.
-
JSON-LD 1.1, W3C Recommendation
The format of every NGSI-LD body and @context. Section 6.2 defines the Link header that carries a @context beside a plain JSON body (see JSON-LD @context).
-
JSON-LD 1.1 Processing Algorithms and API, W3C Recommendation
Expansion and compaction, which turn your short names into IRIs and back. Andromeda's JSON-LD library, jsonld, is tested against the W3C test suite for this specification.
-
RFC 7396, JSON Merge Patch
Partial updates and merges apply the Fragment as a merge patch, and the NGSI-LD Null deletes a member. A Fragment that names no member changes nothing.
-
RFC 8785, JSON Canonicalization Scheme
The canonical form of stored @context documents. Informational, not a Standards Track document.
-
RFC 6901, JSON Pointer
Locates one node in a JSON document while the broker walks it.
-
RFC 6902, JSON Patch
An informative reference of NGSI-LD v1.9.1. Andromeda accepts no JSON Patch body.
-
RFC 5234, ABNF
The notation of the NGSI-LD v1.9.1 grammars, for example q (clause 4.9) and Scope (clause 4.18). Andromeda checks input against those grammars as printed.
-
RFC 4647, Matching of language tags
How language ranges in lang and Accept-Language match a tag, in sections 2.2 and 3.3.2. Replaces RFC 3066 together with RFC 4646.
-
RFC 4646, Tags for identifying languages, first published
Replaced by RFC 5646.
-
RFC 3066, Tags for identifying languages, earlier version
Replaced by RFC 4646 and RFC 4647.
-
RFC 5646, language tags
The tags of a languageMap and of the lang filter. Tags are compared case-insensitively (section 2.1.1).
-
RFC 6067, BCP 47 extension U
The form of the collation an ordered query names, for example und-u-ks-identic. A value that is not a valid ICU collation is refused.
ETSI publishes these informative reports on how NGSI-LD is used and deployed. Andromeda implements nothing from them. If you are new to NGSI-LD, start with the Primer.