Changeset b300682 in Klonkt
- Timestamp:
- 06/16/2026 12:38:38 AM (3 months ago)
- Branches:
- main
- Children:
- 25d4041
- Parents:
- af5407f
- Files:
-
- 3 added
- 3 edited
-
docs/cirkels-v1-spec.md (added)
-
src/config/database.js (modified) (1 diff)
-
src/routes/federation.js (added)
-
src/server.js (modified) (2 diffs)
-
src/services/CircleFederation.js (added)
-
src/services/SettingsService.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/config/database.js
raf5407f rb300682 106 106 `); 107 107 db.prepare("INSERT OR IGNORE INTO app_settings (key, value) VALUES ('tenancy', 'solo')").run(); 108 109 // ── Cirkels (federatie) ───────────────────────────────────── 110 // Decentrale, asymmetrische verbindingen tussen solo-instances. 111 db.exec(` 112 CREATE TABLE IF NOT EXISTS circle_links ( 113 id TEXT PRIMARY KEY, 114 local_site_id TEXT NOT NULL, 115 remote_url TEXT NOT NULL, 116 remote_actor_id TEXT, 117 label TEXT, 118 status TEXT DEFAULT 'active', 119 added_at DATETIME DEFAULT CURRENT_TIMESTAMP, 120 last_synced DATETIME, 121 last_error TEXT, 122 UNIQUE(local_site_id, remote_url), 123 FOREIGN KEY (local_site_id) REFERENCES sites(id) 124 ); 125 CREATE TABLE IF NOT EXISTS remote_actors ( 126 id TEXT PRIMARY KEY, 127 url TEXT UNIQUE NOT NULL, 128 name TEXT, 129 summary TEXT, 130 avatar TEXT, 131 public_key TEXT NOT NULL, 132 fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP 133 ); 134 CREATE TABLE IF NOT EXISTS remote_posts ( 135 id TEXT PRIMARY KEY, 136 actor_id TEXT NOT NULL, 137 published DATETIME, 138 title TEXT, 139 summary TEXT, 140 url TEXT, 141 media_json TEXT, 142 raw_json TEXT, 143 fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP, 144 FOREIGN KEY (actor_id) REFERENCES remote_actors(id) 145 ); 146 `); 108 147 } 109 148 -
src/server.js
raf5407f rb300682 43 43 import artistsRoutes from './routes/artists.js'; 44 44 import postsRoutes from './routes/posts.js'; 45 import federationRoutes from './routes/federation.js'; 45 46 46 47 if (!process.env.SESSION_SECRET) { … … 166 167 app.locals.prutter = prutter; 167 168 169 // Cirkels-federatie: publieke, site-agnostische endpoints (/.klonkt/*). 170 // Vóór resolveSite/theme — ze hebben geen site-context nodig. 171 app.use(federationRoutes); 172 168 173 app.use(resolveSite); 169 174 app.use(loadAudioTracks); -
src/services/SettingsService.js
raf5407f rb300682 35 35 36 36 export function getTenancy() { 37 return getSetting('tenancy', 'solo') === 'hub' ? 'hub' : 'solo'; 37 const v = getSetting('tenancy', 'solo'); 38 return v === 'hub' ? 'hub' : v === 'circle' ? 'circle' : 'solo'; 38 39 } 39 40 40 41 export function setTenancy(mode) { 41 setSetting('tenancy', mode === 'hub' ? 'hub' : 'solo'); 42 const m = (mode === 'hub' || mode === 'circle') ? mode : 'solo'; 43 setSetting('tenancy', m); 42 44 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)