opentide

Metadata

Shared metadata block present on all Tide objects (threat, objective, rule). Provides identity, schema routing, versioning, provenance, and classification.

Requirements

  • Every core object MUST include a metadata object.
  • metadata.schema MUST be a registered schema identifier; unknown identifiers are invalid.
  • metadata.uuid MUST be a UUIDv4 string.
  • metadata.version MUST be present (semver string or integer).
  • metadata.created and metadata.modified MUST be ISO 8601 date or datetime strings (coerced to string on load).
  • metadata.tlp MUST be a valid Traffic Light Protocol value from the tlp vocabulary.
  • metadata.pap, when present, MUST be a pap vocabulary name (white, green, amber, red).
  • metadata.author, metadata.contributors, and metadata.organisation MAY be omitted.
  • metadata.reviewed, when present, MUST be an ISO 8601 date or datetime string (coerced to string on load). A date-only value denotes 00:00:00Z on that date. The field is defined only for metadata.schema: rule::1.1. threat::1.0, objective::1.0, and rule::1.0 MUST reject it.

Definition

metadata (ObjectMetadata)

FieldTypeRequiredDescription
uuidstring (UUIDv4)yesGlobally unique object identifier
schemastringyesSchema identifier, e.g. rule::1.0 (alias: schema_id in Pydantic)
versionstring | integeryesBusiness version of this instance
createdstringyesCreation date
modifiedstringyesLast modification date
tlpstringyesTraffic Light Protocol classification
papstringnoPermissible Actions Protocol classification. Omitted means no PAP tag on share.
authorstringnoPrimary author
contributorslist[string]noAdditional contributors
organisationOrganisationnoOwning organisation
reviewedstringnoLast human review of a detection rule. Defined only for rule::1.1. Omitted means no recorded review. Staleness is defined in rule-1.1.md.

organisation (Organisation)

FieldTypeRequiredDescription
uuidstringyesOrganisation UUID. Sharing uses it as the default publishing organisation.
namestringyesOrganisation display name

references (ObjectReferences)

Optional on threat, objective, and rule objects.

FieldTypeRequiredDescription
publicmap[integer, string]noPublic reference IDs to URLs (YAML int keys coerced on load)
internalmap[string, string]noInternal reference keys to URLs
reportslist[string]noReport links

Relationships

  • versioning.md — metadata.schema and metadata.version semantics
  • specs/vocabularies/catalog.md — tlp and pap vocabularies
  • sharing/misp-1.0.md — consumes metadata.tlp, optional metadata.pap, and metadata.organisation.uuid as the publishing organisation unless the [[misp]] block overrides it
  • Object specs — embed metadata as required top-level block
  • objects/rule-1.1.md — optional metadata.reviewed and the unreviewed-rule predicate

Defaults & overrides

No client overrides for metadata structure. Template generation MAY pre-fill dates and placeholder UUIDs via opentide generate templates.

Examples

metadata:
  uuid: 00000000-0000-4000-8003-000000000001   # UUIDv4, unique across the repo
  schema: rule::1.0                             # registered schema identifier
  version: 1                                    # instance content version
  created: "2026-01-01"
  modified: "2026-01-02"
  tlp: clear                                    # from the `tlp` vocabulary

History

VersionDateNotes
1.22026-09-30Optional metadata.reviewed on rule::1.1 only (RFC 0008).
1.12026-09-28Optional metadata.pap for sharing (RFC 0005). Sharing uses organisation.uuid as the default publishing organisation.
1.02026-06-25Initial spec from opentide models/metadata.py

On this page