Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"extends @nextcloud/browserslist-config"
],
"dependencies": {
"@conduction/nextcloud-vue": "^2.34.0",
"@conduction/nextcloud-vue": "^2.36.1",
"@nextcloud/auth": "^2.6.0",
"@nextcloud/axios": "~2.6.0",
"@nextcloud/capabilities": "^1.2.1",
Expand Down
53 changes: 53 additions & 0 deletions src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,40 @@
}
]
},
"store": {
"_note": "Decidiq's store exchanges CONFIGURATION, not rows. A configuration set carries the registers, schemas, objects, views, flows, sources and mappings that make one way of governing work together, which is what someone means by a default gemeente. `types` selects that path (store-over-federated-config); an app declaring none keeps the remote objects API. `builtIn` names the four example sets already in lib/Settings/profiles/, so the page states what decidiq ships rather than rendering blank without a registry. There is deliberately no `installable` allowlist: a set exists to introduce schemas the instance does not have yet, so a list of schemas decidiq already owns would refuse exactly the sets worth installing. The trust boundary for a bundle is its publisher, enforced by the engine's source allowlist and trusted-key check.",
"types": [
"openregister.configset",
"openregister.flows"
],
"localRegister": "decidiq",
"builtIn": [
{
"slug": "municipality",
"title": "Municipality",
"description": "A council with committees and factions. Motions, commitments, information letters and a regulations register.",
"kind": "openregister.configset"
},
{
"slug": "association",
"title": "Association or VvE",
"description": "A members' meeting with a board. House rules, weighted votes, audit statements and annual accounts.",
"kind": "openregister.configset"
},
{
"slug": "corporate",
"title": "Company board",
"description": "A supervisory board, an executive board and a management team. Terms, conflicts of interest and evaluations.",
"kind": "openregister.configset"
},
{
"slug": "works-council",
"title": "Works council",
"description": "A works council inside a company. Advice requests, consent requests and staff consultation.",
"kind": "openregister.configset"
}
]
},
"observability": {
"_note": "Decidiq adopts the OpenRegister AppHost observability engine (ADR-040 / ADR-006). The /api/health route is served by a thin GenericHealthController subclass (HealthController) that reshapes the engine result into the published REQ-API-004 body {status, baseUrl, version, openregister}; /api/metrics is aliased straight to GenericMetricsController. statusCodePolicy=always200 + cors=true reproduce the REQ-API-004 reverse-proxy probe contract (probes succeed even when degraded; CORS + OPTIONS preflight). The orAvailable check subsumes the former hand-rolled DI-container ObjectService lookup. No metrics[] descriptors: decidiq gains the implicit decidesk_info / decidesk_up gauges, a pure compliance upgrade over the no-metrics-endpoint baseline.",
"health": {
Expand Down Expand Up @@ -164,6 +198,14 @@
"section": "footer",
"order": 95
},
{
"id": "StoreMenu",
"label": "Store",
"icon": "StoreOutline",
"route": "Store",
"section": "footer",
"order": 92
},
{
"id": "FeaturesRoadmapMenu",
"label": "Features & roadmap",
Expand Down Expand Up @@ -2043,6 +2085,17 @@
]
}
},
{
"id": "Store",
"route": "/store",
"type": "store",
"title": "Store",
"config": {
"app": "decidiq",
"title": "Store",
"description": "Install governance configuration that other organisations have published: a council with its committees and factions, an association with its members' meeting, or the flows that move a decision through them."
}
},
{
"id": "FeaturesRoadmap",
"route": "/features-roadmap",
Expand Down