Network Schema Reference
The DPG network schema is a runtime contract.
Top-Level Shape
Section titled “Top-Level Shape”{ "id": "blue_dot", "display_name": "Blue Dot", "description": "Jobs and hiring network.", "schema_standard": "https://json-schema.org/draft/2020-12/schema", "domains": [], "instances": [], "actions": {}}Top-Level Fields
Section titled “Top-Level Fields”| Field | Required | Runtime use |
|---|---|---|
id | yes | API payload network id and default action network |
display_name | no | UI/network display label |
description | no | Human-readable context |
schema_standard | no | JSON Schema draft reference |
domains | yes | Domain, item schema, and cache contract |
instances | yes | Instance discovery and action target validation |
actions | yes | Allowed interactions and payload validation |
Domain Fields
Section titled “Domain Fields”Each domain entry should expose an item_schemas map keyed by schema identifier.
It can also define minimum_cache_ttl_seconds for inter-instance item fetch caching.
Example:
{ "id": "student", "minimum_cache_ttl_seconds": 300, "item_schemas": { "profile_1.0": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object" }, "profile_1.1": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object" } }}default_item_schemas is still accepted for backward compatibility. At runtime, default_item_schemas is merged first and item_schemas wins on duplicate keys. Prefer item_schemas for new network documents.
Instance Fields
Section titled “Instance Fields”If a specific instance needs to override the payload for a supported item_type, it should publish a custom_item_schema_urls map:
{ "domain_id": "tutor", "instance_url": "https://tutor.yellowdot.example.com", "custom_item_schema_urls": { "profile_1.1": "https://tutor.yellowdot.example.com/schemas/profile_1.1.json" }}schema_url is also accepted as a compatibility shortcut for the profile item type. During parsing it is converted into custom_item_schema_urls.profile.
Action Fields
Section titled “Action Fields”Actions define interaction rules.
{ "connect": { "interactions": [ { "from_network": "yellow_dot", "from_domain": "student", "from_items": ["profile_1.0"], "to_network": "yellow_dot", "to_domain": "tutor", "to_items": ["profile_1.0"], "requirement_schema": { "...": "..." }, "event_schema": { "...": "..." } } ] }}from_network and to_network are optional. When omitted, the current network id is used. from_items and to_items restrict the allowed source and target item types; omit them only when all item types for the domains are allowed.
Runtime Usage In DPG
Section titled “Runtime Usage In DPG”API-enforced behavior:
POST /api/v1/item/createchecks thatitem_typeexists indomains[].item_schemasPOST /api/v1/item/createvalidatesitem_stateand generatesitem_instance_urlanditem_schema_urlGET /api/v1/item/fetchis instance-localGET /api/v1/network/item/fetchis inter-instance and honorsminimum_cache_ttl_secondsPOST /api/v1/action/performvalidates item-type eligibility andrequirements_snapshotagainstrequirement_schemaPOST /api/v1/network/action/performcreates the target-side action and initial eventPOST /api/v1/action/update-statusvalidates generated event payloads againstevent_schemaPOST /api/v1/event/storevalidates mirrored event payloads againstevent_schemaGET /api/v1/network/schemasreturns cached schema documentsGET /api/v1/network/schema/:network/:domain/:itemTypeexposes one concrete schemaPOST /api/v1/network/refetch_schemasrefreshes schema cache
UI-interpreted behavior:
domains[]drives the sidebar and create-profile domain choicesitem_schemasdrive forms and cardsprivate: truehides fields on public cards and map markers- action
requirement_schemadrives action modal forms - the current UI focuses on
connect, though the schema/API model supports multiple action types