OXYGENHUB
# c7161ec1a607 spectra / crates / spectra-core / migrations / 0003_projects_presence.sql
984 B · SQL · last changed Spectra stands alone: its own identities, signatures and CBOR; projects of any kind of work (#26, #27) 1 day ago source blame history raw
1
-- Projects, any kind of work, and the links the owner draws between them
2
-- (spec §23.1); agents' presence and sessions (spec §8.1, §8.2).
3
CREATE TABLE projects (
4
    name         TEXT PRIMARY KEY,
5
    path         TEXT,                    -- a folder, if the work has one; never read
6
    description  TEXT NOT NULL,
7
    url          TEXT,                    -- a link to it, if any
8
    seq          INTEGER NOT NULL
9
);
10
11
CREATE TABLE project_relations (
12
    project     TEXT NOT NULL,
13
    depends_on  TEXT NOT NULL,
14
    PRIMARY KEY (project, depends_on)
15
);
16
17
CREATE TABLE presence (
18
    agent        TEXT PRIMARY KEY,
19
    state        TEXT NOT NULL,
20
    since_ms     INTEGER NOT NULL,
21
    status_state TEXT,
22
    status_text  TEXT,
23
    status_task  TEXT,
24
    status_ms    INTEGER
25
);
26
27
CREATE TABLE sessions (
28
    id          TEXT PRIMARY KEY,
29
    agent       TEXT NOT NULL,
30
    started_ms  INTEGER NOT NULL,
31
    ended_ms    INTEGER
32
);
33
CREATE INDEX sessions_agent ON sessions(agent);