Skip to content

List every module (transitional cross-module aggregation read).

GET
/metadata/-/modules
curl --request GET \
--url https://example.com/metadata/-/modules \
--header 'Authorization: Bearer <token>'
Media typeapplication/json
Array<object>

Row from metadata.module.

pub(crate), not pub(super): named directly in crate::routes::metadata::mod::read_router’s .response::<200, ...>() OpenAPI response documentation (#814), which sits outside handlers.

object
description

Optional description.

string | null
identityColor

Visual identity hue (kebab-case) — SPEC-UI-0049.

string | null
identityIcon

Visual identity Phosphor icon name — SPEC-UI-0049.

string | null
label
required

Human-readable label.

string
moduleKey
required

Module identifier.

string
vendorKey

Optional vendor prefix.

string | null
Examplegenerated
[
{
"description": "example",
"identityColor": "example",
"identityIcon": "example",
"label": "example",
"moduleKey": "example",
"vendorKey": "example"
}
]

Structured error envelope (SPEC-DATA-0006): {"errors": [{"scope", "target", "code", "message"}, ...]}.

Media typeapplication/json

The top-level response body. Wraps a non-empty list of [ErrorEntry].

object
errors
required

The error entries making up the envelope. Always non-empty.

Array<object>

One entry in the error envelope.

Carries an anchoring [ErrorScope], an optional target that disambiguates within the scope, a stable SCREAMING_SNAKE_CASE code, and a human-readable English message. See SPEC-DATA-0006 for the full envelope contract.

object
code
required

Machine-readable, stable, SCREAMING_SNAKE_CASE identifier.

string
location
Any of:

HFX source location for a [DataError::HfxCompileError] entry.

Emitted as the extra location field on the entry JSON when present, per SPEC-UI-0043. The line/column are 1-based. The frame is the offending source line extracted verbatim from the input.

object
column
required

1-based column within the line, measured in UTF-16 code units of the prefix so browser-side editors can consume it directly.

integer format: uint32
frame

The offending source line text, when available.

string | null
line
required

1-based line number within the source text.

integer format: uint32
message
required

Server-authored English message. Not part of the API contract; may change across releases without notice.

string
rule

The key of the ValidationRule that failed, when the code is RULE_FAILED. None for all other codes.

Skipped during serialization when absent so it does not appear on unrelated entries (same pattern as location).

Documented here as a plain string (#[schemars(with = "...")]) rather than a $ref to ValidationRuleKey’s own schema: that type lives in metadata-types, which does not derive JsonSchema yet (tracked by #812). ValidationRuleKey serializes transparently as its inner string (serde’s default newtype-struct behavior), so this is an accurate wire-shape description, not a placeholder.

string | null
scope
required

Anchoring category. Drives client-side rendering.

One of:

Attached to a specific request field. target is the field key.

string
Allowed value: field
target

Field key for field scope, record id for record scope, null otherwise. Always serialized, even when null.

string | null
Example
{
"errors": [
{
"scope": "field"
}
]
}