Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3c7a474
feat: add ivs schema
Mar 29, 2026
63728f5
fix: require db
Mar 29, 2026
4092180
fix: add db type to schema
Mar 30, 2026
bd09eb5
chore: add spacing
eyalr1100 Apr 5, 2026
d600d37
feat: add schemas for all packages
eyalr1100 Apr 28, 2026
c0b5366
fix: fix id in schemas
eyalr1100 Apr 28, 2026
0230482
feat: add cron variable to synchronizer
eyalr1100 Apr 30, 2026
0e647c6
fix: make schedule work with right
eyalr1100 Apr 30, 2026
358239f
fix: require schedule
eyalr1100 Apr 30, 2026
ad9b75a
feat: add index name format
eyalr1100 May 17, 2026
b561bc1
feat: add actual env variables for both dest and source db
eyalr1100 May 24, 2026
397bc09
chore: change name to vector standard
eyalr1100 May 24, 2026
9330739
fix: fix db config names
eyalr1100 May 25, 2026
8bda453
fix: copy ssl correctly
eyalr1100 May 25, 2026
d490393
fix: fix env var in synchronizer index
eyalr1100 May 27, 2026
732b9eb
feat: add enrichment settings
Jun 1, 2026
511a479
feat: add s3 config
eyalr1100 Jun 2, 2026
5b1a764
feat: configure lua file variable
eyalr1100 Jun 2, 2026
6cc3906
feat: add layers file path
eyalr1100 Jun 2, 2026
af0ef4c
feat: add aliases file path
eyalr1100 Jun 2, 2026
aa83dd9
feat: require files path
eyalr1100 Jun 3, 2026
022a967
Merge remote-tracking branch 'origin/master' into feat/create-ivs-api…
eyalr1100 Jun 22, 2026
16e57b6
feat: make db ca optional
eyalr1100 Jun 23, 2026
b8abd62
feat: make enrichment required
Jun 24, 2026
07a4942
Merge remote-tracking branch 'origin/master' into feat/create-ivs-api…
eyalr1100 Jul 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions schemas/vector/vectorStandard/api/v1.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"$id": "https://mapcolonies.com/vector/vectorStandard/api/v1",
"type": "object",
"title": "vectorStandardApiSchemaV1",
"description": "Vector's standard API schema",
"allOf": [
{
"$ref": "https://mapcolonies.com/common/boilerplate/v2"
},
{
"$ref": "#/definitions/databases"
}
],
"definitions": {
"databases": {
"type": "object",
"required": ["db"],
"properties": {
"db": {
"allOf": [
{
"$ref": "https://mapcolonies.com/common/db/full/v3"
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"x-env-value": "DB_TYPE",
"default": "postgres"
}
},
"required": ["type"]
}
]
}
}
}
}
}
37 changes: 37 additions & 0 deletions schemas/vector/vectorStandard/common/v1.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"$id": "https://mapcolonies.com/vector/vectorStandard/common/v1",
"type": "object",
"title": "vectorStandardCommonSchemaV1",
"description": "Vector's standard common DB schema",
"allOf": [
{
"$ref": "#/definitions/databases"
}
],
"definitions": {
"databases": {
"type": "object",
"required": ["db"],
"properties": {
"db": {
"allOf": [
{
"$ref": "https://mapcolonies.com/common/db/full/v3"
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"x-env-value": "DB_TYPE",
"default": "postgres"
}
},
"required": ["type"]
}
]
}
}
}
}
}
255 changes: 255 additions & 0 deletions schemas/vector/vectorStandard/synchronizer/v1.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,255 @@
{
"$id": "https://mapcolonies.com/vector/vectorStandard/synchronizer/v1",
"type": "object",
"title": "vectorStandardSynchronizerSchemaV1",
"description": "Vector's standard synchronizer schema",
"allOf": [
{ "$ref": "https://mapcolonies.com/common/boilerplate/v2" },
{
"type": "object",
"required": ["dbs", "schedule", "enrichment"],
"properties": {
"dbs": {
"type": "object",
"required": ["source", "destination", "s3"],
"properties": {
"source": { "$ref": "#/definitions/sourceDb" },
"destination": { "$ref": "#/definitions/destinationDb" },
"s3": { "$ref": "#/definitions/s3" }
}
},
"schedule": { "$ref": "#/definitions/schedule" },
"indexNameFormat": { "$ref": "#/definitions/indexNameFormat" },
"layersFile": { "$ref": "#/definitions/layersFile" },
"aliasesFile": { "$ref": "#/definitions/aliasesFile" },
"enrichment": { "$ref": "#/definitions/enrichment" }
}
}
],
"definitions": {
"ssl": {
"type": "object",
"description": "ssl configuration",
"unevaluatedProperties": false,
"if": { "properties": { "enabled": { "const": true } } },
"then": { "required": ["cert", "key"] },
"else": { "properties": { "enabled": { "const": false } } }
},
"sourceDb": {
"type": "object",
"required": ["database", "ssl", "type"],
"properties": {
"host": { "type": "string", "description": "the host of the database", "default": "localhost", "x-env-value": "SOURCE_DB_HOST" },
"port": { "type": "integer", "description": "the port of the database", "default": 5432, "x-env-value": "SOURCE_DB_PORT" },
"username": {
"type": "string",
"description": "the username of the database",
"default": "postgres",
"maxLength": 63,
"x-env-value": "SOURCE_DB_USERNAME"
},
"password": { "type": "string", "description": "the password of the database", "default": "postgres", "x-env-value": "SOURCE_DB_PASSWORD" },
"schema": { "type": "string", "description": "the schema name of the database", "default": "public", "x-env-value": "SOURCE_DB_SCHEMA" },
"database": { "type": "string", "description": "the database name", "maxLength": 63, "x-env-value": "SOURCE_DB_NAME" },
"type": { "type": "string", "description": "the type of the database", "default": "postgres", "x-env-value": "SOURCE_DB_TYPE" },
"ssl": {
"type": "object",
"description": "ssl configuration",
"properties": {
"enabled": {
"type": "boolean",
"description": "enable ssl",
"default": false,
"x-env-value": "SOURCE_DB_ENABLE_SSL_AUTH"
},
"ca": {
"type": "string",
"description": "the path to the ca file",
"x-env-value": "SOURCE_DB_CA_PATH"
},
"cert": {
"type": "string",
"description": "the path to the cert file",
"x-env-value": "SOURCE_DB_CERT_PATH"
},
"key": {
"type": "string",
"description": "the path to the key file",
"x-env-value": "SOURCE_DB_KEY_PATH"
}
},
"unevaluatedProperties": false,
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": ["cert", "key"]
},
"else": {
"properties": {
"enabled": {
"const": false
}
}
}
}
}
},
"destinationDb": {
"type": "object",
"required": ["database", "ssl", "type"],
"properties": {
"host": { "type": "string", "description": "the host of the database", "default": "localhost", "x-env-value": "DEST_DB_HOST" },
"port": { "type": "integer", "description": "the port of the database", "default": 5432, "x-env-value": "DEST_DB_PORT" },
"username": {
"type": "string",
"description": "the username of the database",
"default": "postgres",
"maxLength": 63,
"x-env-value": "DEST_DB_USERNAME"
},
"password": { "type": "string", "description": "the password of the database", "default": "postgres", "x-env-value": "DEST_DB_PASSWORD" },
"schema": { "type": "string", "description": "the schema name of the database", "default": "public", "x-env-value": "DEST_DB_SCHEMA" },
"database": { "type": "string", "description": "the database name", "maxLength": 63, "x-env-value": "DEST_DB_NAME" },
"type": { "type": "string", "description": "the type of the database", "default": "postgres", "x-env-value": "DEST_DB_TYPE" },
"ssl": {
"type": "object",
"description": "ssl configuration",
"properties": {
"enabled": {
"type": "boolean",
"description": "enable ssl",
"default": false,
"x-env-value": "DEST_DB_ENABLE_SSL_AUTH"
},
"ca": {
"type": "string",
"description": "the path to the ca file",
"x-env-value": "DEST_DB_CA_PATH"
},
"cert": {
"type": "string",
"description": "the path to the cert file",
"x-env-value": "DEST_DB_CERT_PATH"
},
"key": {
"type": "string",
"description": "the path to the key file",
"x-env-value": "DEST_DB_KEY_PATH"
}
},
"unevaluatedProperties": false,
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": ["cert", "key"]
},
"else": {
"properties": {
"enabled": {
"const": false
}
}
}
}
}
},
"s3": {
"allOf": [
{
"$ref": "https://mapcolonies.com/common/s3/full/v2"
},
{
"type": "object",
"required": ["fileName"],
"properties": {
"fileName": {
"type": "string",
"description": "Lat lon conversion table file name",
"x-env-value": "S3_FILE_NAME"
},
"layersVariable": {
"type": "string",
"description": "Lat lon conversion table file name",
"x-env-value": "S3_LAYERS_VARIABLE"
}
}
}
]
},
"schedule": {
"type": "string",
"description": "The cron timing spec",
"default": "0 0 * * *",
"examples": ["*/1 * * * *"],
"x-env-value": "SYNC_FIELDS_CRON"
},
"indexNameFormat": {
"type": "string",
"description": "The indexes' names in the source DB",
"default": "{layerName}_{column}_idx",
"examples": ["{layerName}_{column}_idx"],
"x-env-value": "INDEX_NAME_FORMAT"
},
"layersFile": {
"type": "string",
"description": "The path to the layers file",
"default": "./config/layers.json",
"x-env-value": "LAYERS_FILE_PATH"
},
"aliasesFile": {
"type": "string",
"description": "The path to the aliases file",
"default": "./config/aliases.json",
"x-env-value": "ALIASES_FILE_PATH"
},
"enrichment": {
"type": "object",
"description": "Enrichment configuration",
"required": ["enabled"],
"properties": {
"enabled": {
"type": "boolean",
"description": "enable enrichment",
"default": false,
"x-env-value": "ENRICHMENT_ENABLED"
},
"api": {
"type": "string",
"description": "Property alias name API",
"x-env-value": "ENRICHMENT_API_URL",
"default": "https://example.com/layers/{layerName}"
},
"propertiesPath": {
"type": "string",
"default": "{layerName}.properties",
"x-env-value": "ENRICHMENT_PROPERTIES_PATH"
},
"aliasField": {
"type": "string",
"default": "alias",
"x-env-value": "ENRICHMENT_ALIAS_FIELD"
}
},
"unevaluatedProperties": false,
"if": {
"properties": { "enabled": { "const": true } }
},
"then": {
"required": ["api", "propertiesPath", "aliasField"]
},
"else": {
"properties": { "enabled": { "const": false } }
}
}
}
}
Loading