ontoref/install/resources/schemas/ontoref-project.ncl
Jesús Pérez d59644b96f
feat: unified auth model, project onboarding, install pipeline, config management
The full scope across this batch: POST /sessions key→token exchange, SessionStore dual-index with revoke_by_id, CLI Bearer injection (ONTOREF_TOKEN), ontoref setup
  --gen-keys, install scripts, daemon config form roundtrip, ADR-004/005, on+re self-description update (fully-self-described), and landing page refresh.
2026-03-13 20:56:31 +00:00

30 lines
1.2 KiB
Plaintext

# ~/.config/ontoref/schemas/ontoref-project.ncl — ProjectEntry contract.
# Installed by `just install-daemon`. Imported by per-project .ontoref/project.ncl files.
let KeyRole = [| 'admin, 'viewer |] in
let KeyEntry = {
role | KeyRole,
hash | String,
label | String | default = "",
} in
let ProjectEntry = {
slug | String,
# Absolute local path to the project root. Empty string for push_only projects.
root | String,
# Import paths for nickel export on this project's NCL files (local projects only).
nickel_import_paths | Array String | default = [],
# Auth keys for this project. Empty = no auth required.
keys | Array KeyEntry | default = [],
# Remote URL for push_only projects (git, SSH, HTTPS). Informational — not accessed by daemon.
remote_url | String | default = "",
# When true: no local file watch, no NCL import. Project pushes ontology via POST /sync.
push_only | Bool | default = false,
} in
{
make_project = fun fields => fields | ProjectEntry,
make_remote_project = fun fields => (fields & { push_only = true, root = "", nickel_import_paths = [] }) | ProjectEntry,
}