A collection of Cloud Shield definitions, including services with their domains and ISO country definitions.
This repository contains JSON definitions used by Cloud Shield. Services are defined with their associated domains, and countries are defined by ISO alpha-2 code with English and German display names.
cloud-shield-definitions/
├── README.md
├── schemas/
│ ├── services.schema.json # JSON schema defining the service structure
│ └── countries.schema.json # JSON schema defining the country structure
├── main.go # Script to compile all definitions into generated JSON files
├── ids.json # Stable numeric IDs grouped by service filename and ISO country code
├── services/ # Directory containing all service definitions
│ ├── service1.json
│ ├── service2.json
│ └── ...
└── countries/ # Directory containing ISO country definitions
├── DE.json
├── FR.json
└── ...
All individual definition files are automatically compiled into generated JSON catalogs. Service definitions are compiled into services.json, and country definitions are compiled into countries.json.
The compiled files are available in two ways:
- GitHub Releases: Automatically published with each push to master branch
- GitHub Actions Artifacts: Available for all CI runs (including pull requests)
To compile the definitions locally:
go run main.goThis will generate:
services.jsonwith the compiled service catalogcountries.jsonwith the compiled country catalogids.jsonwith the stable numeric ID registry in the form{ "services": {...}, "countries": {...} }
Each compiled service includes an id field. Each compiled country includes an id and code field. Existing IDs are preserved, and only newly added definition files receive the next free number.
To add a new service:
- Create a new JSON file in the
servicesdirectory - Follow the structure defined in
schemas/services.schema.json - Include all required fields and adhere to the specified formats
- Use a descriptive filename that clearly identifies the service
- Validate your JSON against the schema before submitting
To add a new country definition:
- Create a new JSON file in the
countriesdirectory named with the ISO alpha-2 code, for exampleDE.json - Follow the structure defined in
schemas/countries.schema.json - Include English and German names in the
nameobject - Do not rename existing country files after they are merged
Warning
DO NOT change existing file names once they are merged into the repository.
File names serve as unique identifiers within Cloud Shield. Pull requests that change file names will be rejected.
We welcome contributions to this project! If you have suggestions for new services or improvements, please open an issue or submit a pull request.
- Use GitHub Issues to report problems with existing services
- Include detailed information about the issue
MIT License