Files
alknet/tasks/core/napi-reload-api.md

46 lines
1.7 KiB
Markdown

---
id: core/napi-reload-api
name: Add NAPI reload API for DynamicConfig and ForwardingPolicy
status: completed
depends_on:
- core/config-identity-provider-into-handler
- core/multi-transport-listeners
scope: narrow
risk: low
impact: component
level: implementation
---
## Description
Expose `reloadAuth()`, `reloadForwarding()`, and `reloadAll()` on the NAPI `AlknetServer` object, per configuration.md and napi-and-pubsub.md updates.
**Key changes**:
- `AlknetServer` NAPI object holds a `ConfigReloadHandle` (from task 1.5)
- `reloadAuth(config)`: creates new `AuthPolicy` and atomically swaps it via ArcSwap
- `reloadForwarding(config)`: creates new `ForwardingPolicy` and atomically swaps it
- `reloadAll(config)`: swaps the entire `DynamicConfig`
- Call protocol integration: expose operation registry for NAPI consumers to register handlers (depends on operation-context-registry)
## Acceptance Criteria
- [ ] `AlknetServer` NAPI object has `reloadAuth()`, `reloadForwarding()`, `reloadAll()` methods
- [ ] `reloadAuth()` creates new `AuthPolicy` from provided config and swaps via `ConfigReloadHandle`
- [ ] `reloadForwarding()` creates new `ForwardingPolicy` and swaps via `ConfigReloadHandle`
- [ ] `reloadAll()` swaps the entire `DynamicConfig`
- [ ] All swaps are atomic via ArcSwap — existing connections continue, new connections get new config
- [ ] NAPI type definitions for `ForwardingPolicyConfig` and auth config types
- [ ] Existing NAPI tests pass
## References
- docs/architecture/configuration.md — NAPI Reload API
- docs/architecture/napi-and-pubsub.md — NAPI layer additions
## Notes
> To be filled by implementation agent
## Summary
> To be filled on completion