OXYGENHUB
# 01320eefd505 spectra / crates / spectra-core / migrations / 0003_projects_presence.sql
917 B · SQL · last changed Projects with relations from .oxymodules, presence and sessions; projections skip malformed payloads (#5) 2 days ago source blame history raw
1
-- Projects and how they depend on one another (spec §23.1), and agents'
2
-- presence and sessions (spec §8.1, §8.2).
3
CREATE TABLE projects (
4
    name     TEXT PRIMARY KEY,
5
    path     TEXT NOT NULL,
6
    repo_id  TEXT,
7
    remote   TEXT,
8
    modules  TEXT NOT NULL,               -- JSON array of the URLs in .oxymodules
9
    seq      INTEGER NOT NULL
10
);
11
12
CREATE TABLE project_relations (
13
    project     TEXT NOT NULL,
14
    depends_on  TEXT NOT NULL,
15
    PRIMARY KEY (project, depends_on)
16
);
17
18
CREATE TABLE presence (
19
    agent        TEXT PRIMARY KEY,
20
    state        TEXT NOT NULL,
21
    since_ms     INTEGER NOT NULL,
22
    status_state TEXT,
23
    status_text  TEXT,
24
    status_task  TEXT,
25
    status_ms    INTEGER
26
);
27
28
CREATE TABLE sessions (
29
    id          TEXT PRIMARY KEY,
30
    agent       TEXT NOT NULL,
31
    started_ms  INTEGER NOT NULL,
32
    ended_ms    INTEGER
33
);
34
CREATE INDEX sessions_agent ON sessions(agent);