Compare commits

...

9 Commits

Author SHA1 Message Date
a869935241 Add Knowledgebase Stations schema
All checks were successful
Generate and Release Protos / release (push) Successful in 43s
2026-03-28 22:20:53 +00:00
6cf6ea8aef Update schedule object to handle canellation location 2026-03-27 22:44:03 +00:00
50824255f8 Extend TOC info type to handle URL
All checks were successful
Generate and Release Protos / release (push) Successful in 32s
2026-03-25 13:24:20 +00:00
e1950c0ef3 Fix TIPLOC in darwin-tiplocs to be a simple string, rather than an array
All checks were successful
Generate and Release Protos / release (push) Successful in 36s
2026-03-22 19:26:37 +00:00
1a9b68ce41 Add schemas for Darwin Reference data
All checks were successful
Generate and Release Protos / release (push) Successful in 41s
2026-03-21 21:00:27 +00:00
817baa7d66 Remove hashes from PIS data type
All checks were successful
Generate and Release Protos / release (push) Successful in 37s
2026-03-19 06:22:13 +00:00
072902be59 Fix incorrect data type
All checks were successful
Generate and Release Protos / release (push) Successful in 32s
2026-03-02 22:47:25 +00:00
2452e17faa Fix onocorrect data-type 2026-03-02 22:47:08 +00:00
f2a9b7ffdc Ensure types correct
All checks were successful
Generate and Release Protos / release (push) Successful in 35s
2026-03-02 22:25:02 +00:00
10 changed files with 496 additions and 17 deletions

View File

@@ -0,0 +1,50 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/ref/stations.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinStationsNames",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "ref-darwin-station-names",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"required": ["c", "n"],
"properties": {
"c": {
"type": "string",
"description": "CRS of the location"
},
"n": {
"type": "string",
"description": "The display name of this location"
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -0,0 +1,58 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/ref/tiplocs.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinTiplocData",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "ref-darwin-tiplocs",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"required": ["t", "n"],
"properties": {
"c": {
"type": "string",
"description": "CRS of the location"
},
"t": {
"type": "string",
"description": "TIPLOC assigned to the location"
},
"n": {
"type": "string",
"description": "The display name of this location"
},
"l": {
"type": "string",
"description": "The NLC of this location"
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -0,0 +1,67 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/ref/via-text.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinViaText",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "ref-darwin-via-text",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"required": ["a", "d", "l1", "v"],
"properties": {
"a": {
"name": "at",
"type": "string",
"description": "The CRS defining where the text should be displayed"
},
"d": {
"name": "destination",
"type": "string",
"description": "The text should apply to trains to this destination"
},
"l1": {
"name": "location-one",
"type": "string",
"description": "Message triggered if loc1 & loc2 (if present) are listed as stops"
},
"l2": {
"name": "location-two",
"type": "string",
"description": "Message triggered if loc1 & loc2 (if present) are listed as stops"
},
"v": {
"name": "viaText",
"description": "The text that should be displayed",
"type": "string"
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -0,0 +1,77 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/ref/loading-category.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinLoadingCatData",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "ref-darwin-loading-category",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"required": ["c", "n"],
"properties": {
"c": {
"name": "code",
"type": "string",
"description": "The 'code' for the 'category'"
},
"t": {
"name": "typicalDescription",
"type": "string",
"description": "The 'typicalDescription' of the category"
},
"e": {
"name": "expectedDescription",
"type": "string",
"description": "The 'expectedDescription' of the category"
},
"d": {
"name": "definition",
"description": "The 'definition' of the category",
"type": "string"
},
"n": {
"name": "name",
"description": "The 'name' of the category",
"type": "string"
},
"i": {
"name": "image",
"description": "The 'image' for the category",
"type": "string"
},
"o": {
"name": "TOC",
"description": "The 'toc' for the category",
"type": "string"
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -0,0 +1,54 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/ref/reasons.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinReasonCodeData",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "ref-darwin-reason-code",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"required": ["c", "lR", "cR"],
"properties": {
"c": {
"type": "integer",
"description": "The 'code' that the late/cancel reason maps to"
},
"lR": {
"type": "string",
"description": "The lateReason string for the item"
},
"cR": {
"type": "string",
"description": "The cancelReason string for the item"
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -0,0 +1,57 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/ref/tocs.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinTocData",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "ref-darwin-toc",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"required": ["c", "n"],
"properties": {
"c": {
"name": "ATOC Code",
"type": "string",
"description": "The ATOC 'code' for the TOC"
},
"n": {
"name": "TOC Name",
"type": "string",
"description": "The name of the TOC"
},
"u": {
"name": "URL",
"type": "string",
"description": "URL for TOC Information"
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -0,0 +1,125 @@
{
"$id": "https://schema.owlboard.info/data-ingress/knowledgebase/stations.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "KnowledgebaseStations",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "kb-stations"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"station": {
"type": "object",
"required": ["c", "l", "o"],
"properties": {
"c": {
"type": "string",
"name": "CRS Code",
"description": "Station CRS (Primary Key)"
},
"n": {
"type": "string",
"name": "NLC Code",
"description": "Station NLC Code"
},
"mc": {
"type": "number",
"name": "Minimum Connection Time",
"description": "The minimum connection time at this station"
},
"a": {
"type": "object",
"name": "Address",
"description": "The address of the station",
"properties": {
"l1": {
"type": "string",
"name": "Line 1"
},
"l2": {
"type": "string",
"name": "Line 2"
},
"l3": {
"type": "string",
"name": "Line 3"
},
"l4": {
"type": "string",
"name": "Line 4"
},
"l5": {
"type": "string",
"name": "Line 5"
},
"pc": {
"type": "string",
"name": "Postcode"
}
}
},
"l": {
"type": "object",
"name": "Location",
"description": "LatLon of the station",
"properties": {
"lt": {
"type": "number",
"name": "Latitude",
"description": "Stations Latitude"
},
"ln": {
"type": "number",
"name": "Longitude",
"description": "Stations Longitude"
}
}
},
"o": {
"type": "string",
"name": "Operator",
"description": "The two character code denoting the stations operator"
},
"m": {
"type": "string",
"name": "Map URL"
},
"r": {
"name": "Request",
"type": "boolean",
"description": "Denotes whether station is Request Stop"
},
"d": {
"name": "Defibrillator",
"type": "boolean",
"description": "Denotes whether defibrillator is available"
}
}
}
}
}
},
"required": ["service_name", "service_id", "data_type", "data_kind", "sent_timestamp"],
"additionalProperties": false
}

View File

@@ -14,7 +14,7 @@
},
"data_type": {
"type": "string",
"enum": ["file"],
"enum": ["file", "raw"],
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
@@ -23,7 +23,7 @@
},
"data_kind": {
"type": "string",
"enum": ["pis", "timetable", "knowledgebase", "darwin_schedule", "darwin_ts", "darwin_ref"],
"enum": ["pis", "timetable", "knowledgebase", "PushPort16Schedule", "darwin_ts", "darwin_ref"],
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {}

View File

@@ -25,13 +25,6 @@
},
"description": "List of 3ALPHA/CRS Codes"
},
"crsHash": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[0-9]+$",
"description": "Stringified 64-bit hash"
},
"tiplocStops": {
"type": "array",
"items": {
@@ -41,14 +34,8 @@
"pattern": "^[a-zA-Z0-9]+$"
},
"description": "List of TIPLOC Codes"
},
"tiplocHash": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[0-9]+$"
}
},
"required": ["code", "toc", "crsStops", "crsHash", "tiplocStops", "tiplocHash"],
"required": ["code", "toc", "crsStops", "tiplocStops"],
"additionalProperties": false
}

View File

@@ -234,7 +234,7 @@
},
"data_type": {
"type": "string",
"const": "PushPort16Schedule",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
@@ -313,6 +313,10 @@
"type": "integer",
"description": "Cancellation Reason code"
},
"cancelLocation": {
"type": "string",
"description": "Location at which the train was cancelled - Only valid when 'cancelReason' is defined, and even then optional"
},
"locations": {
"type": "object",
"additionalProperties": false,