{"id":28287491,"url":"https://github.com/ingitdb/ingitdb-schema","last_synced_at":"2026-05-01T03:36:08.225Z","repository":{"id":114021844,"uuid":"406157443","full_name":"ingitdb/ingitdb-schema","owner":"ingitdb","description":"Defines IngitDB definition schema","archived":false,"fork":false,"pushed_at":"2025-04-05T01:42:55.000Z","size":11,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-05T14:04:20.360Z","etag":null,"topics":["ingitdb","json-schema"],"latest_commit_sha":null,"homepage":"https://ingitdb.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ingitdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2021-09-13T23:19:25.000Z","updated_at":"2021-10-12T03:29:00.000Z","dependencies_parsed_at":"2024-09-09T21:05:42.816Z","dependency_job_id":"58e32154-e2da-4228-8cfd-2fb962217206","html_url":"https://github.com/ingitdb/ingitdb-schema","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ingitdb/ingitdb-schema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingitdb%2Fingitdb-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingitdb%2Fingitdb-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingitdb%2Fingitdb-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingitdb%2Fingitdb-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ingitdb","download_url":"https://codeload.github.com/ingitdb/ingitdb-schema/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ingitdb%2Fingitdb-schema/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260488025,"owners_count":23016824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ingitdb","json-schema"],"created_at":"2025-05-21T22:11:54.177Z","updated_at":"2026-05-01T03:36:08.209Z","avatar_url":"https://github.com/ingitdb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# inGitDB JSON Schemas\n\nThis directory contains [JSON Schema](https://json-schema.org/) definitions for **inGitDB** configuration and collection definition files.\n\n## Schemas\n\n### `ingitdb-root-config.schema.json`\n\nSchema for the **`.ingitdb.yaml`** root configuration file. This file lives at the root of an inGitDB database repository and maps collection IDs to their directory paths.\n\n**Key properties:**\n\n| Property          | Type                | Description                                                                                     |\n| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------- |\n| `rootCollections` | `map[string]string` | Maps collection IDs to relative directory paths. A trailing `*` auto-discovers sub-collections. |\n\n### `ingitdb-collection.schema.json`\n\nSchema for **`.ingitdb-collection.yaml`** files. Each collection directory contains one of these files to define its structure.\n\n**Top-level properties:**\n\n| Property        | Type                   | Required | Description                                           |\n| --------------- | ---------------------- | -------- | ----------------------------------------------------- |\n| `titles`        | `map[string]string`    | No       | Localized collection titles keyed by locale code.     |\n| `record_file`   | `RecordFileDef`        | **Yes**  | Defines file naming, format, and record storage type. |\n| `data_dir`      | `string`               | No       | Relative path to the data files directory.            |\n| `columns`       | `map[string]ColumnDef` | **Yes**  | Column definitions (at least one required).           |\n| `columns_order` | `string[]`             | No       | Display order of columns (unique, no duplicates).     |\n| `default_view`  | `string`               | No       | ID of the default view.                               |\n\n**`RecordFileDef`** — defines how records are stored:\n\n| Property | Type     | Required | Description                                                         |\n| -------- | -------- | -------- | ------------------------------------------------------------------- |\n| `name`   | `string` | **Yes**  | File name pattern (supports `{key}` and column placeholders).       |\n| `format` | `string` | **Yes**  | Serialization format (e.g. `JSON`, `YAML`).                         |\n| `type`   | `enum`   | **Yes**  | `map[string]any` · `[]map[string]any` · `map[string]map[string]any` |\n\n**`ColumnDef`** — defines a column in the collection:\n\n| Property      | Type                | Required | Description                                                                                                                      |\n| ------------- | ------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |\n| `type`        | `string` / `enum`   | **Yes**  | Data type: `string`, `int`, `float`, `bool`, `date`, `time`, `datetime`, `any`, `map[locale]string`, or `map[keyType]valueType`. |\n| `title`       | `string`            | No       | Single-locale display title.                                                                                                     |\n| `titles`      | `map[string]string` | No       | Localized titles keyed by locale.                                                                                                |\n| `valueTitle`  | `string`            | No       | Display title for the column value.                                                                                              |\n| `required`    | `boolean`           | No       | Whether a value is required (default: `false`).                                                                                  |\n| `length`      | `integer`           | No       | Exact required length.                                                                                                           |\n| `min_length`  | `integer`           | No       | Minimum length.                                                                                                                  |\n| `max_length`  | `integer`           | No       | Maximum length.                                                                                                                  |\n| `foreign_key` | `string`            | No       | Reference to another collection (e.g. `auth.users`).                                                                             |\n\n## Usage\n\nReference the schemas in your YAML files for IDE validation and autocompletion:\n\n```yaml\n# yaml-language-server: $schema=./schemas/ingitdb-collection.schema.json\n```\n\n## Source of Truth\n\nThese schemas are derived from the Go struct definitions in [`ingitdb-go/ingitdb/`](../../ingitdb-go/ingitdb/):\n\n- [`definition.go`](../../ingitdb-go/ingitdb/definition.go) — `Definition`\n- [`collection_def.go`](../../ingitdb-go/ingitdb/collection_def.go) — `CollectionDef`\n- [`record_file_def.go`](../../ingitdb-go/ingitdb/record_file_def.go) — `RecordFileDef`\n- [`column_def.go`](../../ingitdb-go/ingitdb/column_def.go) — `ColumnDef`\n- [`column_type.go`](../../ingitdb-go/ingitdb/column_type.go) — `ColumnType`\n- [`config/root_config.go`](../../ingitdb-go/ingitdb/config/root_config.go) — `RootConfig`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fingitdb%2Fingitdb-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fingitdb%2Fingitdb-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fingitdb%2Fingitdb-schema/lists"}