mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-15 20:17:22 +00:00
introduced a new config migration to version 10, updated related tests to validate migration.
613 lines
17 KiB
JSON
613 lines
17 KiB
JSON
{
|
|
"version": 9,
|
|
"server": {
|
|
"cors": {
|
|
"origin": "*",
|
|
"allow_methods": ["GET", "POST", "PATCH", "PUT", "DELETE"],
|
|
"allow_headers": [
|
|
"Content-Type",
|
|
"Content-Length",
|
|
"Authorization",
|
|
"Accept"
|
|
],
|
|
"allow_credentials": true
|
|
},
|
|
"mcp": { "enabled": false, "path": "/api/system/mcp" }
|
|
},
|
|
"data": {
|
|
"basepath": "/api/data",
|
|
"default_primary_format": "integer",
|
|
"entities": {
|
|
"media": {
|
|
"type": "system",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": {
|
|
"format": "integer",
|
|
"fillable": false,
|
|
"required": false
|
|
}
|
|
},
|
|
"path": { "type": "text", "config": { "required": true } },
|
|
"folder": {
|
|
"type": "boolean",
|
|
"config": {
|
|
"default_value": false,
|
|
"hidden": true,
|
|
"fillable": ["create"],
|
|
"required": false
|
|
}
|
|
},
|
|
"mime_type": { "type": "text", "config": { "required": false } },
|
|
"size": { "type": "number", "config": { "required": false } },
|
|
"scope": {
|
|
"type": "text",
|
|
"config": {
|
|
"hidden": true,
|
|
"fillable": ["create"],
|
|
"required": false
|
|
}
|
|
},
|
|
"etag": { "type": "text", "config": { "required": false } },
|
|
"modified_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"reference": { "type": "text", "config": { "required": false } },
|
|
"entity_id": { "type": "number", "config": { "required": false } },
|
|
"metadata": { "type": "json", "config": { "required": false } }
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "asc" }
|
|
},
|
|
"users": {
|
|
"type": "system",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": {
|
|
"format": "integer",
|
|
"fillable": false,
|
|
"required": false
|
|
}
|
|
},
|
|
"email": { "type": "text", "config": { "required": true } },
|
|
"strategy": {
|
|
"type": "enum",
|
|
"config": {
|
|
"options": { "type": "strings", "values": ["password"] },
|
|
"required": true,
|
|
"hidden": ["update", "form"],
|
|
"fillable": ["create"]
|
|
}
|
|
},
|
|
"strategy_value": {
|
|
"type": "text",
|
|
"config": {
|
|
"fillable": ["create"],
|
|
"hidden": ["read", "table", "update", "form"],
|
|
"required": true
|
|
}
|
|
},
|
|
"role": {
|
|
"type": "enum",
|
|
"config": {
|
|
"options": { "type": "strings", "values": ["admin", "guest"] },
|
|
"required": false
|
|
}
|
|
},
|
|
"age": {
|
|
"type": "enum",
|
|
"config": {
|
|
"options": {
|
|
"type": "strings",
|
|
"values": ["18-24", "25-34", "35-44", "45-64", "65+"]
|
|
},
|
|
"required": false
|
|
}
|
|
},
|
|
"height": { "type": "number", "config": { "required": false } },
|
|
"gender": {
|
|
"type": "enum",
|
|
"config": {
|
|
"options": { "type": "strings", "values": ["male", "female"] },
|
|
"required": false
|
|
}
|
|
}
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "asc" }
|
|
},
|
|
"avatars": {
|
|
"type": "regular",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": {
|
|
"format": "integer",
|
|
"fillable": false,
|
|
"required": false
|
|
}
|
|
},
|
|
"identifier": { "type": "text", "config": { "required": false } },
|
|
"payload": {
|
|
"type": "json",
|
|
"config": { "required": false, "hidden": ["table"] }
|
|
},
|
|
"created_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"started_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"completed_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"input": {
|
|
"type": "media",
|
|
"config": {
|
|
"required": false,
|
|
"fillable": ["update"],
|
|
"hidden": false,
|
|
"mime_types": [],
|
|
"virtual": true,
|
|
"entity": "avatars"
|
|
}
|
|
},
|
|
"output": {
|
|
"type": "media",
|
|
"config": {
|
|
"required": false,
|
|
"fillable": ["update"],
|
|
"hidden": false,
|
|
"mime_types": [],
|
|
"virtual": true,
|
|
"entity": "avatars"
|
|
}
|
|
},
|
|
"users_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Users",
|
|
"required": false,
|
|
"reference": "users",
|
|
"target": "users",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
}
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "desc" }
|
|
},
|
|
"tryons": {
|
|
"type": "regular",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": {
|
|
"format": "integer",
|
|
"fillable": false,
|
|
"required": false
|
|
}
|
|
},
|
|
"created_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"completed_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"avatars_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Avatars",
|
|
"required": false,
|
|
"reference": "avatars",
|
|
"target": "avatars",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
},
|
|
"users_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Users",
|
|
"required": false,
|
|
"reference": "users",
|
|
"target": "users",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
},
|
|
"output": {
|
|
"type": "media",
|
|
"config": {
|
|
"required": false,
|
|
"fillable": ["update"],
|
|
"hidden": false,
|
|
"mime_types": [],
|
|
"virtual": true,
|
|
"entity": "tryons",
|
|
"max_items": 1
|
|
}
|
|
},
|
|
"products_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Products",
|
|
"required": false,
|
|
"reference": "products",
|
|
"target": "products",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
},
|
|
"payload": {
|
|
"type": "json",
|
|
"config": { "required": false, "hidden": ["table"] }
|
|
}
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "desc" }
|
|
},
|
|
"products": {
|
|
"type": "regular",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": {
|
|
"format": "integer",
|
|
"fillable": false,
|
|
"required": false
|
|
}
|
|
},
|
|
"enabled": { "type": "boolean", "config": { "required": false } },
|
|
"title": { "type": "text", "config": { "required": false } },
|
|
"url": { "type": "text", "config": { "required": false } },
|
|
"image": {
|
|
"type": "media",
|
|
"config": {
|
|
"required": false,
|
|
"fillable": ["update"],
|
|
"hidden": false,
|
|
"mime_types": [],
|
|
"virtual": true,
|
|
"entity": "products",
|
|
"max_items": 1
|
|
}
|
|
},
|
|
"created_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"sites_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Sites",
|
|
"required": false,
|
|
"reference": "sites",
|
|
"target": "sites",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
},
|
|
"garment_type": {
|
|
"type": "enum",
|
|
"config": {
|
|
"options": {
|
|
"type": "strings",
|
|
"values": ["auto", "tops", "bottoms", "one-pieces"]
|
|
},
|
|
"required": false
|
|
}
|
|
}
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "desc" }
|
|
},
|
|
"sites": {
|
|
"type": "regular",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": {
|
|
"format": "integer",
|
|
"fillable": false,
|
|
"required": false
|
|
}
|
|
},
|
|
"origin": {
|
|
"type": "text",
|
|
"config": {
|
|
"pattern": "^(https?):\\/\\/([a-zA-Z0-9.-]+)(:\\d+)?$",
|
|
"required": true
|
|
}
|
|
},
|
|
"name": { "type": "text", "config": { "required": false } },
|
|
"active": { "type": "boolean", "config": { "required": false } },
|
|
"logo": {
|
|
"type": "media",
|
|
"config": {
|
|
"required": false,
|
|
"fillable": ["update"],
|
|
"hidden": false,
|
|
"mime_types": [],
|
|
"virtual": true,
|
|
"entity": "sites",
|
|
"max_items": 1
|
|
}
|
|
},
|
|
"instructions": {
|
|
"type": "text",
|
|
"config": {
|
|
"html_config": {
|
|
"element": "textarea",
|
|
"props": { "rows": "2" }
|
|
},
|
|
"required": false,
|
|
"hidden": ["table"]
|
|
}
|
|
}
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "desc" }
|
|
},
|
|
"sessions": {
|
|
"type": "regular",
|
|
"fields": {
|
|
"id": {
|
|
"type": "primary",
|
|
"config": { "format": "uuid", "fillable": false, "required": false }
|
|
},
|
|
"created_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": true }
|
|
},
|
|
"claimed_at": {
|
|
"type": "date",
|
|
"config": { "type": "datetime", "required": false }
|
|
},
|
|
"url": { "type": "text", "config": { "required": false } },
|
|
"sites_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Sites",
|
|
"required": false,
|
|
"reference": "sites",
|
|
"target": "sites",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
},
|
|
"users_id": {
|
|
"type": "relation",
|
|
"config": {
|
|
"label": "Users",
|
|
"required": false,
|
|
"reference": "users",
|
|
"target": "users",
|
|
"target_field": "id",
|
|
"target_field_type": "integer",
|
|
"on_delete": "set null"
|
|
}
|
|
}
|
|
},
|
|
"config": { "sort_field": "id", "sort_dir": "desc" }
|
|
}
|
|
},
|
|
"relations": {
|
|
"poly_avatars_media_input": {
|
|
"type": "poly",
|
|
"source": "avatars",
|
|
"target": "media",
|
|
"config": { "mappedBy": "input" }
|
|
},
|
|
"poly_avatars_media_output": {
|
|
"type": "poly",
|
|
"source": "avatars",
|
|
"target": "media",
|
|
"config": { "mappedBy": "output" }
|
|
},
|
|
"n1_avatars_users": {
|
|
"type": "n:1",
|
|
"source": "avatars",
|
|
"target": "users",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
},
|
|
"n1_tryons_avatars": {
|
|
"type": "n:1",
|
|
"source": "tryons",
|
|
"target": "avatars",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
},
|
|
"n1_tryons_users": {
|
|
"type": "n:1",
|
|
"source": "tryons",
|
|
"target": "users",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
},
|
|
"poly_tryons_media_output": {
|
|
"type": "poly",
|
|
"source": "tryons",
|
|
"target": "media",
|
|
"config": { "mappedBy": "output", "targetCardinality": 1 }
|
|
},
|
|
"poly_products_media_image": {
|
|
"type": "poly",
|
|
"source": "products",
|
|
"target": "media",
|
|
"config": { "mappedBy": "image", "targetCardinality": 1 }
|
|
},
|
|
"n1_tryons_products": {
|
|
"type": "n:1",
|
|
"source": "tryons",
|
|
"target": "products",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
},
|
|
"poly_sites_media_logo": {
|
|
"type": "poly",
|
|
"source": "sites",
|
|
"target": "media",
|
|
"config": { "mappedBy": "logo", "targetCardinality": 1 }
|
|
},
|
|
"n1_sessions_sites": {
|
|
"type": "n:1",
|
|
"source": "sessions",
|
|
"target": "sites",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
},
|
|
"n1_sessions_users": {
|
|
"type": "n:1",
|
|
"source": "sessions",
|
|
"target": "users",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
},
|
|
"n1_products_sites": {
|
|
"type": "n:1",
|
|
"source": "products",
|
|
"target": "sites",
|
|
"config": {
|
|
"mappedBy": "",
|
|
"inversedBy": "",
|
|
"required": false,
|
|
"with_limit": 5
|
|
}
|
|
}
|
|
},
|
|
"indices": {
|
|
"idx_unique_media_path": {
|
|
"entity": "media",
|
|
"fields": ["path"],
|
|
"unique": true
|
|
},
|
|
"idx_media_reference": {
|
|
"entity": "media",
|
|
"fields": ["reference"],
|
|
"unique": false
|
|
},
|
|
"idx_media_entity_id": {
|
|
"entity": "media",
|
|
"fields": ["entity_id"],
|
|
"unique": false
|
|
},
|
|
"idx_unique_users_email": {
|
|
"entity": "users",
|
|
"fields": ["email"],
|
|
"unique": true
|
|
},
|
|
"idx_users_strategy": {
|
|
"entity": "users",
|
|
"fields": ["strategy"],
|
|
"unique": false
|
|
},
|
|
"idx_users_strategy_value": {
|
|
"entity": "users",
|
|
"fields": ["strategy_value"],
|
|
"unique": false
|
|
},
|
|
"idx_sites_origin_active": {
|
|
"entity": "sites",
|
|
"fields": ["origin", "active"],
|
|
"unique": false
|
|
},
|
|
"idx_sites_active": {
|
|
"entity": "sites",
|
|
"fields": ["active"],
|
|
"unique": false
|
|
},
|
|
"idx_products_url": {
|
|
"entity": "products",
|
|
"fields": ["url"],
|
|
"unique": false
|
|
}
|
|
}
|
|
},
|
|
"auth": {
|
|
"enabled": true,
|
|
"basepath": "/api/auth",
|
|
"entity_name": "users",
|
|
"allow_register": true,
|
|
"jwt": {
|
|
"secret": "^^jwt.secret^^",
|
|
"alg": "HS256",
|
|
"expires": 999999999,
|
|
"issuer": "issuer",
|
|
"fields": ["id", "email", "role"]
|
|
},
|
|
"cookie": {
|
|
"path": "/",
|
|
"sameSite": "none",
|
|
"secure": true,
|
|
"httpOnly": true,
|
|
"expires": 604800,
|
|
"partitioned": false,
|
|
"renew": true,
|
|
"pathSuccess": "/admin",
|
|
"pathLoggedOut": "/"
|
|
},
|
|
"strategies": {
|
|
"password": {
|
|
"enabled": true,
|
|
"type": "password",
|
|
"config": { "hashing": "sha256" }
|
|
}
|
|
},
|
|
"guard": { "enabled": false },
|
|
"roles": {
|
|
"admin": { "implicit_allow": true },
|
|
"guest": { "is_default": true }
|
|
}
|
|
},
|
|
"media": {
|
|
"enabled": true,
|
|
"basepath": "/api/media",
|
|
"entity_name": "media",
|
|
"storage": { "body_max_size": 0 },
|
|
"adapter": {
|
|
"type": "s3",
|
|
"config": {
|
|
"access_key": "^^s3.access_key^^",
|
|
"secret_access_key": "^^s3.secret_access_key^^",
|
|
"url": "https://1234.r2.cloudflarestorage.com/bucket-name"
|
|
}
|
|
}
|
|
},
|
|
"flows": { "basepath": "/api/flows", "flows": {} }
|
|
}
|