8 Commits

Author SHA1 Message Date
770ee003e7 Add message-envelope type
All checks were successful
Generate and Release Protos / release (push) Successful in 27s
2026-01-14 18:51:14 +00:00
a5675b1442 Add 'service_id' field. Used to include the message senders hostname
All checks were successful
Generate and Release Protos / release (push) Successful in 26s
2026-01-13 18:54:10 +00:00
a927ccc732 Add additional file types ready for declaration
All checks were successful
Generate and Release Protos / release (push) Successful in 30s
2026-01-13 18:40:16 +00:00
817c338745 Update data_type and data_kind fields 2026-01-13 18:38:14 +00:00
af3c82518c Change go package name
All checks were successful
Generate and Release Protos / release (push) Successful in 26s
2026-01-08 23:30:56 +00:00
9511db8ee9 Set correct package name for Go package generation
All checks were successful
Generate and Release Protos / release (push) Successful in 26s
2026-01-08 23:15:48 +00:00
fc92331238 Try and fix AGAIN
All checks were successful
Generate and Release Protos / release (push) Successful in 26s
2026-01-08 23:06:45 +00:00
a4e6386fd1 Attempt to fix internal ZIP structure again?
All checks were successful
Generate and Release Protos / release (push) Successful in 26s
2026-01-08 22:55:15 +00:00
4 changed files with 63 additions and 19 deletions

View File

@@ -78,16 +78,23 @@ jobs:
ZIP_ROOT="/tmp/go_upload" ZIP_ROOT="/tmp/go_upload"
FULL_PATH="$ZIP_ROOT/$MOD_NAME@$VERSION" FULL_PATH="$ZIP_ROOT/$MOD_NAME@$VERSION"
# 1. Prepare
cd gen/go cd gen/go
go mod init $MOD_NAME
go mod tidy
# 2. Initialize the module
go mod init "$MOD_NAME"
# 3. Create the structure
mkdir -p "$FULL_PATH" mkdir -p "$FULL_PATH"
cp -r . "$FULL_PATH/"
pushd "$ZIP_ROOT" # 4. Copy the CONTENTS of models to the root of the module
zip -r "$GITHUB_WORKSPACE/module.zip" . # This flattens the structure so the .go files are next to go.mod
popd cp -r models/* "$FULL_PATH/"
cp go.mod "$FULL_PATH/"
# 5. Zip and Upload
cd "$ZIP_ROOT"
zip -r -D "$GITHUB_WORKSPACE/module.zip" .
curl -f --user "owlbot:${{ secrets.PACKAGE_PUSH }}" \ curl -f --user "owlbot:${{ secrets.PACKAGE_PUSH }}" \
--upload-file "$GITHUB_WORKSPACE/module.zip" \ --upload-file "$GITHUB_WORKSPACE/module.zip" \

View File

@@ -0,0 +1,32 @@
{
"$id": "https://schema.owlboard.info/data-ingress/message-envelope.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "MessageEnvelope",
"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",
"enum": ["file"],
"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",
"enum": ["pis", "timetable", "knowledgebase"],
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
}
},
"required": ["service_name", "service_id", "data_type", "sent_timestamp"],
"additionalProperties": true
}

View File

@@ -8,23 +8,27 @@
"type": "string", "type": "string",
"description": "Name of the service submitting the update" "description": "Name of the service submitting the update"
}, },
"update_type": { "service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string", "type": "string",
"enum": ["file"], "enum": ["file"],
"description": "The method of update application" "description": "The type of data contained in this message object"
}, },
"sent_timestamp": { "sent_timestamp": {
"type": "integer", "type": "integer",
"description": "Unix timestamp representing the time the message was sent" "description": "Unix timestamp representing the time the message was sent"
}, },
"data_kind": {
"type": "string",
"enum": ["pis", "timetable", "knowledgebase"],
"description": "The data type contained in the file. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": { "payload": {
"type": "object", "type": "object",
"properties": { "properties": {
"kind": {
"type": "string",
"enum": ["pis"],
"description": "The type of data provided in the update"
},
"version": { "version": {
"type": "string", "type": "string",
"description": "The version string from the package source" "description": "The version string from the package source"
@@ -34,9 +38,10 @@
"description": "The full path to the file, including protocol (eg. s3://) where appropriate" "description": "The full path to the file, including protocol (eg. s3://) where appropriate"
} }
}, },
"required": ["kind", "version", "filepath"] "required": ["version", "filepath"],
"additionalProperties": false
} }
}, },
"required": ["service_name", "update_type", "payload"], "required": ["service_name", "service_id", "data_type", "sent_timestamp", "data_kind", "payload"],
"additionalProperties": false "additionalProperties": false
} }

View File

@@ -18,7 +18,7 @@ for file in $FILES; do
npx --yes json-schema-to-typescript "$file" > "gen/ts/${clean_name}.ts" npx --yes json-schema-to-typescript "$file" > "gen/ts/${clean_name}.ts"
# Generate Go # Generate Go
go-jsonschema -p models "$file" > "gen/go/models/${clean_name}.go" go-jsonschema -p contracts "$file" > "gen/go/models/${clean_name}.go"
done done
echo "✅ Generated single TS package in gen/ts" echo "✅ Generated single TS package in gen/ts"