{"id":25649790,"url":"https://github.com/openchami/schemas","last_synced_at":"2026-06-19T15:01:32.806Z","repository":{"id":253502105,"uuid":"843474891","full_name":"OpenCHAMI/schemas","owner":"OpenCHAMI","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-18T23:41:40.000Z","size":16,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-19T00:27:26.663Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenCHAMI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-16T15:40:50.000Z","updated_at":"2025-06-18T23:41:43.000Z","dependencies_parsed_at":"2025-02-23T14:44:06.572Z","dependency_job_id":null,"html_url":"https://github.com/OpenCHAMI/schemas","commit_stats":null,"previous_names":["openchami/schemas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenCHAMI/schemas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCHAMI%2Fschemas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCHAMI%2Fschemas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCHAMI%2Fschemas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCHAMI%2Fschemas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenCHAMI","download_url":"https://codeload.github.com/OpenCHAMI/schemas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCHAMI%2Fschemas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34536283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-23T14:33:53.814Z","updated_at":"2026-06-19T15:01:32.789Z","avatar_url":"https://github.com/OpenCHAMI.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# OpenCHAMI Schema Repository\n\nWelcome to the OpenCHAMI Schema Repository! This repository serves as the central source for all JSON schemas used across the OpenCHAMI consortium. By maintaining a unified set of schemas, we ensure consistency and compatibility across all OpenCHAMI projects.\n\n## Overview\n\nThis repository contains JSON schemas that define the structure and validation rules for data used across various OpenCHAMI projects. Each schema is generated from Go structs using reflection, ensuring that the schema remains consistent with the underlying data models.\n\n## Directory Structure\n\nThe repository is organized as follows:\n\n- **schemas/**: This directory contains all the Go structs that will become JSON schemas, each in its own file. Schemas are named according to their purpose or associated data structure.\n- **examples/**: This directory contains example payloads that conform to the schemas. These examples serve as references for developers implementing or integrating with OpenCHAMI components.\n- **docs/**: Documentation related to the schemas, including detailed descriptions and usage guidelines, is found here.\n\n## How to Contribute\n\nWe welcome contributions to the schema repository! Here’s how you can get involved:\n\n1. **Fork the Repository**: Start by forking this repository to your own GitHub account.\n2. **Create a Branch**: Create a new branch for your changes.\n3. **Add/Update Schemas**: Modify or add new Go structs in the appropriate files. Use reflection to generate the corresponding JSON schema.\n4. **Test Your Changes**: Ensure that your changes are valid and conform to the repository’s guidelines. Include example payloads in the `examples/` directory.\n5. **Submit a Pull Request**: Once your changes are ready, submit a pull request for review.\n\n## Generating JSON Schemas\n\nSchemas in this repository are generated from Go structs using reflection. Here’s an example of how to generate a JSON schema:\n\n```go\npackage schemas\n\n// Example struct definition\ntype Node struct {\n    ID   string `json:\"id\"`\n    Name string `json:\"name\"`\n    IP   string `json:\"ip\"`\n}\n```\n\n## Schema Versioning\n\nEach schema is versioned using an envelope/header format. This allows servers to verify the schema version before processing the contained data. Here’s an example:\n\n```go\npackage schemas\n\n// Envelope structure for schema versioning\ntype Envelope struct {\n    SchemaID   string      `json:\"schema_id\"`\n    Version    string      `json:\"version\"`\n    Payload    interface{} `json:\"payload\"`\n}\n```\n\n## Referencing Schemas\n\nAll schemas are published on a webpage for easy access and reference. Servers and clients can use these schemas to validate data and ensure compliance with OpenCHAMI standards.\n\n## Resources\n\n- [Kubernetes API Conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md)\n- [Kubernetes API Versioning](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning)\n- [OpenCHAMI Node Orchestrator](https://github.com/OpenCHAMI/node-orchestrator)\n\n## License\n\nThis repository is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n---\n\nThank you for contributing to the OpenCHAMI Schema Repository! Together, we can maintain a consistent and reliable set of data models for all OpenCHAMI projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenchami%2Fschemas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenchami%2Fschemas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenchami%2Fschemas/lists"}