# backend-data-contracts This repository is the single source of truth for all schema definitions used across the Owlboard backend communication and storage services. Language specific types are generated here and published to the Gitea package repository linked to the repo. ## Directory Structure | Path | Description | | :--- | :--- | | `schemas` | JSON Schema files organised into clear subfolders | | `scripts` | Workflow Scripts | ## Code Generation and Publishing Workflow The generation and release process is automated via Gitea Actions. It is triggered whenever a new **SemVer tag** (e.g., `v1.0.0`) is pushed to this repository. ## To Consume the Contracts ### 1. Go Services Since the package is hosted in the Gitea Package Registry, you must configure your environment to use the Gitea instance as a proxy. **Setup:** ```bash # Set the proxy to check our Gitea instance first go env -w GOPROXY="https://git.fjla.uk/api/packages/OwlBoard/go,https://proxy.golang.org,direct" # Trust our internal domain and skip the public Google checksum database go env -w GONOSUMDB="git.fjla.uk" ``` The, you can simply run go get, as usual. #### Container Usage ```bash ARG GOPROXY=https://git.fjla.uk/api/packages/OwlBoard/go,https://proxy.golang.org,direct ARG GONOSUMDB=git.fjla.uk ENV GOPROXY=$GOPROXY ENV GONOSUMDB=$GONOSUMDB ``` ### 2. Typescript Services You will need to configure .npmrc in your projects root directory to point to the correct repo: ```bash @owlboard:registry=https://git.fjla.uk/api/packages/OwlBoard/npm/ ``` Then you can install as usual: ```bash npm install @owlboard/backend-data-contracts@0.1.0 ```