Commit Graph

80 Commits

Author SHA1 Message Date
83d04dff17 feat(auth): replace .env/godotenv secret handling with config-based secrets
Secrets (JWT keys, LDAP sync password, OIDC client id/secret, cross-login
keys) are now configured directly in config.json under the auth section
where they are used. Each secret can still be supplied via its existing
environment variable, which takes precedence over the config value.

The godotenv dependency, the .env file, configs/env-template.txt and the
loadEnvironment() bootstrap step are removed. -init now writes the demo
JWT keys into config.json instead of a .env file.

Closes #283

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 3a7cb814c53f
2026-06-17 12:28:17 +02:00
2b01b57495 feat: replace gorilla/sessions with alexedwards/scs/v2
Browser sessions are now server-side, stored in the SQLite database via
scs/sqlite3store (new `sessions` table, DB migration to version 12) instead
of gorilla/sessions client-side cookie storage. Only an opaque random token
is kept in the cookie; session data lives server-side and survives restarts.

Session middleware is wired as a hybrid to avoid buffering large responses:
scs.LoadAndSave on the login/logout write paths, and a non-buffering
read-only LoadSession middleware on the secured/config/frontend read paths
so the large GraphQL /query responses stream unbuffered. JWT-only APIs
(/api, /userapi, /api/metricstore) and static files are left unwrapped.

The session cookie Secure flag is now derived from the server config (set
when cc-backend terminates TLS itself); previously it was effectively never
set. The SESSION_KEY env var is removed as server-side tokens need no
signing secret. The dormant Bearer-JWT branch in the frontend urql client
is removed; the web UI authenticates GraphQL via the session cookie.

Closes #558

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: b51075f43cc7
2026-06-17 07:54:26 +02:00
33ec755422 Fix typo in job high memory tagger 2026-03-04 15:04:53 +01:00
87425c0b09 Cleanup and update example config files 2026-03-04 10:41:52 +01:00
39635ea123 Cleanup metricstore options
Entire-Checkpoint: 2f9a4e1c2e87
2026-03-04 10:37:43 +01:00
688ad507a2 Merge branch 'optimize-checkpoint-wal' into dev 2026-03-03 06:58:28 +01:00
Aditya Ujeniya
a243e17499 Update to shutdown worker for WAL checkpointing mode 2026-03-02 15:27:06 +01:00
3d5a124321 Refine patterns. Do not match commented lines. 2026-03-02 15:01:44 +01:00
5d136634a2 Update jobclass rules 2026-02-24 07:00:15 +01:00
c9d8de0d56 Fix and extend jobclass rules 2026-02-22 13:27:51 +01:00
7bd79dcc3c Add nodestate retention in example config 2026-02-18 10:28:41 +01:00
Aditya Ujeniya
2eeefc2720 Add healthCheck support for external CCMS 2026-02-16 16:57:17 +01:00
b160284a1b Update vasp example tagger rule 2026-02-06 09:08:46 +01:00
b307e885ce feat: Add support for multiple external metric stores 2026-01-27 10:02:07 +01:00
1d4c79c821 Unify JSON attribute naming ot use kebab style case. Cleanup configuration. 2026-01-20 09:47:13 +01:00
Aditya Ujeniya
77a2a256e4 Update to MemoryUsage worker 2026-01-16 17:01:39 +01:00
Aditya Ujeniya
1a41629535 Refactor Archive to Cleanup and rename everything 2026-01-16 14:09:50 +01:00
76139ef53c Remove now optional apiAllowedIPs option 2026-01-16 08:23:31 +01:00
Aditya Ujeniya
32319adf72 Add Memory Tracker worker for CCMS 2026-01-15 21:29:21 +01:00
Aditya Ujeniya
10a5c89a16 Fix logic for findFiles() and keep archive worker 2026-01-15 20:27:11 +01:00
Aditya Ujeniya
7cd98c4f25 Test and update files for dynamic retention 2026-01-15 17:48:59 +01:00
7db2bbe6b0 Add job tagger option to example config 2026-01-15 15:53:54 +01:00
a3fffa8e8b Update example and demo config 2026-01-15 13:57:15 +01:00
Aditya Ujeniya
3276ed7785 Half-baked commit for new dynamic retention logic 2026-01-14 14:56:36 +01:00
c8627a13f4 Remove obsolete slusters config section 2026-01-14 11:17:49 +01:00
a9366d14c6 Add README for tagging. Enable tagging by flag without configuration option 2026-01-13 08:32:32 +01:00
42809e3f75 Remove embedded tagger rules 2026-01-13 07:20:26 +01:00
9bf5c5dc1a Update README and config schema 2025-12-23 09:34:09 +01:00
1cd4a57bd3 Remove support for mysql/mariadb 2025-12-20 11:13:41 +01:00
e56532e5c8 Add example json API payloads 2025-12-20 09:35:54 +01:00
Aditya Ujeniya
32e5353847 Fix to NATS deadlock and revert demo script 2025-12-17 18:14:36 +01:00
Aditya Ujeniya
d2f2d78954 Changing JWT output to stdout and change to help text 2025-12-17 15:58:42 +01:00
Aditya Ujeniya
fed62b6c45 Functionality to configure resampling 2025-12-12 14:51:01 +01:00
881c4566dd Reformat and remove optional ui-config 2025-12-04 07:42:55 +01:00
Aditya Ujeniya
44e98e8f2f Fix to avro reader 2025-10-27 20:44:40 +01:00
Aditya Ujeniya
f34e10cfd9 Schema for metric store 2025-10-23 17:58:17 +02:00
40398497c2 Update Node table code. Add simple unit test 2025-10-16 12:54:16 +02:00
Christoph Kluge
471ec1cd2e change deprecated defaultMetrics loader to new confkey
- see PR #333
2025-10-08 18:24:41 +02:00
Christoph Kluge
e296cd7ca0 add web init with uiconfig file path, add cli flag 2025-10-08 16:25:50 +02:00
Aditya Ujeniya
b2368a0751 Connectivity to CCMS feature readded 2025-09-10 14:23:18 +02:00
Aditya Ujeniya
3b9d05cc6d Fix exclusive to shared in svlete and graphql 2025-09-09 14:57:05 +02:00
Aditya Ujeniya
af43901ca3 Trial and Test MetricStore components 2025-09-08 22:54:13 +02:00
Aditya Ujeniya
62565b9ae2 Combined metricstore api and functions 2025-09-08 11:29:27 +02:00
0754ba5292 Port configuration to ccConfig scheme
Decentralize config validation
Modularize configuration handling
2025-07-07 13:09:12 +02:00
161f0744aa fix: enforce apiAllowedIPs config option
Fixes #385
2025-04-28 09:54:22 +02:00
exterr2f
f158eaa29c Add default_metrics.json which sets the defaults for job_view_selectedMetrics:cluster for new users 2025-02-10 09:39:49 +01:00
a53d473b58 Update subcluster-generate Perl Skript
Fixes #278
2024-11-28 17:12:05 +01:00
7f43c88a39 Add example config for mariadb backend 2024-11-21 14:54:04 +01:00
92ec64d80f Update demo config file 2024-11-14 19:10:55 +01:00
bcd7f47409 Transfer docs to dedicated doc webpage 2024-02-13 11:54:02 +01:00