andreas
55bdb9593a
feat: add config write API (POST /api/0/config, POST /api/0/config/rollback)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 11:35:45 -04:00
andreas
18769afd37
feat: add config read API (GET /api/0/config, /section/{name}, /backups)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 11:25:06 -04:00
andreas
31db5cf35e
fix: configio thread safety, tmp cleanup, backup collision, dns empty handling
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 11:21:03 -04:00
andreas
326f53f23d
feat: add configio module for comment-preserving YAML round-trip writes
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 11:11:32 -04:00
andreas
2f5da9fc5e
fix: coerce malformed profile JSON to OAuthError; add redirect_uri assertion
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 08:46:19 -04:00
andreas
87aeec5999
feat: generic build_auth_url/exchange_code/fetch_user for multi-provider OAuth2
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 08:38:11 -04:00
andreas
f24500a6b5
fix: copy field_map/profile_data_path in get_providers; improve caplog assertions
2026-05-09 08:34:48 -04:00
andreas
a7bb183222
test: assert warning logged when get_providers skips invalid entries
2026-05-09 08:31:09 -04:00
andreas
8207cd7b5f
feat: add PROVIDER_DEFS, ResolvedProvider, get_providers() to oauth.py
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 08:29:07 -04:00
andreas
b06de6fdd3
fix: remove dead helper, add state logging, add integration-style oauth tests
...
- Remove unused `_gitea_cfg_url` module-level helper from http.py
- Add logger.warning on invalid/expired state in oauth_gitea_callback
- Add test_callback_invalid_state_rejects and test_full_oauth_flow_chain to tests/test_oauth.py (21 tests total, all passing)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:53:57 -04:00
andreas
d190029728
fix: guard unconfigured oauth calls; add missing test coverage; clean imports
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:42:21 -04:00
andreas
b8307e7a9d
feat: add authorization_url, exchange_code, fetch_user to oauth module
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:37:21 -04:00
andreas
a2fdf091f5
fix: preserve OAuth users across config reload; fix test isolation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:34:57 -04:00
andreas
1914e6f28e
feat: add provision_oauth_user() to users module
...
Creates or updates a user from an OAuth2 provider: new users are
inserted with an empty password_hash (OAuth-only login); existing users
have their display name and avatar refreshed while all other attributes
(admin flag, password_hash, notification_channels) are preserved.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:32:08 -04:00
andreas
82cbce9615
test: fix shared state leak and fragile expiry assertion in oauth tests
2026-05-08 13:30:16 -04:00
andreas
dbb779b013
feat: add OAuth2 CSRF state management
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:28:18 -04:00
andreas
ca908ee967
fix: remove unused imports from oauth module and tests
2026-05-08 13:26:51 -04:00
andreas
73c697b6c5
feat: add oauth module skeleton and is_enabled()
...
Add hbd/server/oauth.py with OAuthError, _gitea_cfg(), and is_enabled()
to detect when all three required Gitea OAuth2 config keys are present.
Add "oauth": {} default to SERVER_DEFAULTS in config.py.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 13:24:27 -04:00
andreas
56037a036d
fix: remove unused pytest import in test_nagios_runner
2026-04-25 16:39:56 +02:00
andreas
535dbda47d
feat: validate absolute command paths at nagios_runner init
2026-04-25 16:24:33 +02:00
andreas
b5963badd6
feat: async subprocess in nagios_runner with stderr capture and signal handling
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-25 16:18:09 +02:00
andreas
94e1597978
feat: set skip_reason on nagios_runner when no commands configured
...
When NagiosRunnerPlugin has no commands configured, set skip_reason before
returning False from initialize(). This allows PluginLoader to log INFO
(not WARNING) when the plugin is skipped.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-25 16:13:03 +02:00
andreas
c9c2ed772f
fix: document skip_reason in Plugin docstring; remove unused import in test
2026-04-25 16:10:35 +02:00
andreas
aeb78dcb8e
feat: add skip_reason to Plugin; improve PluginLoader init messaging
2026-04-25 16:08:07 +02:00
Andreas Wrede
84c1aef51f
removal of cver
2026-04-01 20:47:29 -04:00
Andreas Wrede
079e84f729
display tag fro alterts, cleanup udp
2026-04-01 11:49:55 -04:00
andreas
5e6dfc75ad
link and flake cleanup
2026-02-08 16:05:03 -05:00
andreas
700ea8d6a4
refactor
2026-02-04 12:45:35 -05:00