nrdocs 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,98 @@
1
+ -- nrdocs initial D1 schema
2
+ -- See nrdocs-specs/04-data-model.md for field documentation
3
+
4
+ CREATE TABLE repos (
5
+ id TEXT PRIMARY KEY,
6
+ github_repository_id TEXT NOT NULL UNIQUE,
7
+ owner TEXT NOT NULL,
8
+ name TEXT NOT NULL,
9
+ full_name TEXT NOT NULL,
10
+ default_branch TEXT,
11
+ approval_state TEXT NOT NULL CHECK (approval_state IN ('pending', 'approved', 'disabled')),
12
+ access_mode TEXT NOT NULL CHECK (access_mode IN ('none', 'public', 'password')),
13
+ latest_successful_build_id TEXT,
14
+ last_publish_status TEXT,
15
+ requested_access TEXT,
16
+ site_title TEXT,
17
+ created_at TEXT NOT NULL,
18
+ updated_at TEXT NOT NULL,
19
+ approved_at TEXT,
20
+ approved_by TEXT,
21
+ disabled_at TEXT,
22
+ disabled_by TEXT
23
+ );
24
+
25
+ CREATE INDEX idx_repos_full_name ON repos(full_name);
26
+ CREATE INDEX idx_repos_approval_state ON repos(approval_state);
27
+ CREATE INDEX idx_repos_owner ON repos(owner);
28
+
29
+ CREATE TABLE builds (
30
+ id TEXT PRIMARY KEY,
31
+ repo_id TEXT NOT NULL,
32
+ github_repository_id TEXT NOT NULL,
33
+ git_sha TEXT NOT NULL,
34
+ git_ref TEXT,
35
+ workflow_ref TEXT,
36
+ run_id TEXT,
37
+ status TEXT NOT NULL CHECK (status IN ('uploading', 'success', 'failed')),
38
+ artifact_prefix TEXT,
39
+ artifact_manifest_key TEXT,
40
+ artifact_size_bytes INTEGER,
41
+ file_count INTEGER,
42
+ content_hash TEXT,
43
+ error_code TEXT,
44
+ error_message TEXT,
45
+ created_at TEXT NOT NULL,
46
+ completed_at TEXT,
47
+ FOREIGN KEY (repo_id) REFERENCES repos(id)
48
+ );
49
+
50
+ CREATE INDEX idx_builds_repo_id ON builds(repo_id);
51
+ CREATE INDEX idx_builds_status ON builds(status);
52
+
53
+ CREATE TABLE password_credentials (
54
+ id TEXT PRIMARY KEY,
55
+ repo_id TEXT NOT NULL,
56
+ password_hash TEXT NOT NULL,
57
+ hash_algorithm TEXT NOT NULL,
58
+ salt TEXT NOT NULL,
59
+ iteration_count INTEGER NOT NULL,
60
+ password_version INTEGER NOT NULL DEFAULT 1,
61
+ active INTEGER NOT NULL DEFAULT 1,
62
+ created_at TEXT NOT NULL,
63
+ updated_at TEXT NOT NULL,
64
+ updated_by TEXT NOT NULL,
65
+ FOREIGN KEY (repo_id) REFERENCES repos(id)
66
+ );
67
+
68
+ CREATE INDEX idx_password_credentials_repo_id ON password_credentials(repo_id);
69
+
70
+ CREATE TABLE auto_approval_rules (
71
+ id TEXT PRIMARY KEY,
72
+ pattern TEXT NOT NULL,
73
+ access_mode TEXT NOT NULL CHECK (access_mode IN ('public', 'password')),
74
+ enabled INTEGER NOT NULL DEFAULT 1,
75
+ priority INTEGER NOT NULL DEFAULT 0,
76
+ created_at TEXT NOT NULL,
77
+ created_by TEXT NOT NULL,
78
+ updated_at TEXT NOT NULL,
79
+ updated_by TEXT NOT NULL
80
+ );
81
+
82
+ CREATE INDEX idx_auto_approval_rules_enabled ON auto_approval_rules(enabled);
83
+
84
+ CREATE TABLE audit_log (
85
+ id TEXT PRIMARY KEY,
86
+ event_type TEXT NOT NULL,
87
+ actor_type TEXT NOT NULL CHECK (actor_type IN ('operator', 'github_action', 'system')),
88
+ actor_id TEXT,
89
+ repo_id TEXT,
90
+ build_id TEXT,
91
+ rule_id TEXT,
92
+ metadata_json TEXT,
93
+ created_at TEXT NOT NULL
94
+ );
95
+
96
+ CREATE INDEX idx_audit_log_repo_id ON audit_log(repo_id);
97
+ CREATE INDEX idx_audit_log_created_at ON audit_log(created_at);
98
+ CREATE INDEX idx_audit_log_event_type ON audit_log(event_type);
@@ -0,0 +1,3 @@
1
+ -- Add per-repo opt-in flag for self-service password management.
2
+ -- Existing rows default to 0 (opt-in disabled) without rewriting any other column.
3
+ ALTER TABLE repos ADD COLUMN allow_repo_owner_password INTEGER NOT NULL DEFAULT 0;
@@ -0,0 +1,3 @@
1
+ -- Add per-rule default for self-service password capability on newly auto-approved repos.
2
+ -- Existing rules default to 1 (allow) without modifying any other column.
3
+ ALTER TABLE auto_approval_rules ADD COLUMN default_allow_repo_owner_password INTEGER NOT NULL DEFAULT 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nrdocs",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "CLI for nrdocs - serverless docs publishing for private GitHub repos",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,12 +8,13 @@
8
8
  },
9
9
  "files": [
10
10
  "dist/bin.mjs",
11
- "dist/runtime/mermaid.min.js"
11
+ "dist/runtime/mermaid.min.js",
12
+ "dist/deploy-worker"
12
13
  ],
13
14
  "scripts": {
14
15
  "build": "tsc",
15
- "bundle": "node build.mjs && node scripts/bundle-mermaid.mjs",
16
- "prepublishOnly": "node build.mjs && node scripts/bundle-mermaid.mjs",
16
+ "bundle": "node build.mjs && node scripts/bundle-mermaid.mjs && node scripts/bundle-worker.mjs",
17
+ "prepublishOnly": "node build.mjs && node scripts/bundle-mermaid.mjs && node scripts/bundle-worker.mjs",
17
18
  "typecheck": "tsc --noEmit",
18
19
  "test": "vitest run",
19
20
  "lint": "echo 'no lint configured yet'"