This project generates System Initiative (SI) schemas for DigitalOcean resources following the si-conduit format.
- Install direnv
- Add the
sicli to your path - Create an API token to your SI workspace
- Create a
.envfile withexport SI_API_TOKEN='$TOKEN_VALUE'and rundirenv allowso that direnv loads the environment variable
- Run
si remote schema pushto push schemas to your workspace. - Run
si remote schema pullto pull schemas from your workspace.
This repository follows the si cli standardized project structure:
.
├── .siroot # Marker file identifying the project root
├── schemas/ # All schema definitions
│ └── <schema-name>/ # Each resource has its own directory
│ ├── .format-version # Format version identifier
│ ├── schema.ts # Main schema definition (PropBuilder)
│ ├── schema.metadata.json # Asset metadata
│ ├── actions/ # CRUD operations
│ │ ├── create.ts
│ │ ├── create.metadata.json
│ │ ├── destroy.ts
│ │ ├── destroy.metadata.json
│ │ ├── refresh.ts
│ │ ├── refresh.metadata.json
│ │ ├── update.ts
│ │ └── update.metadata.json
│ ├── codeGenerators/ # Code generation functions
│ ├── management/ # Resource discovery/import
│ └── qualifications/ # Validation functions
├── prompts/ # Code generation prompts
└── digitalocean-api-spec.yaml # DigitalOcean API specification
- digitalocean-api-spec.yaml - The publicly available DigitalOcean API specification
- generate-schema-prompt.md - Comprehensive prompt for generating asset schemas
- generate-actions-prompt.md - Prompt for generating CRUD action implementations
- generate-import-discover-prompt.md - Generate Import and Discover functions.