Pulse/internal/models
rcourtman c4ca169e2b feat: add multi-tenant isolation foundation (disabled by default)
Implements multi-tenant infrastructure for organization-based data isolation.
Feature is gated behind PULSE_MULTI_TENANT_ENABLED env var and requires
Enterprise license - no impact on existing users.

Core components:
- TenantMiddleware: extracts org ID, validates access, 501/402 responses
- AuthorizationChecker: token/user access validation for organizations
- MultiTenantChecker: WebSocket upgrade gating with license check
- Per-tenant audit logging via LogAuditEventForTenant
- Organization model with membership support

Gating behavior:
- Feature flag disabled: 501 Not Implemented for non-default orgs
- Flag enabled, no license: 402 Payment Required
- Default org always works regardless of flag/license

Documentation added: docs/MULTI_TENANT.md
2026-01-23 21:42:27 +00:00
..
concurrency_test.go Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
converters.go fix: expose linkedHostAgentId and commandsEnabled to frontend 2026-01-02 20:04:20 +00:00
converters_test.go test: add regression tests for missing frontend fields 2026-01-02 20:45:35 +00:00
models.go feat: show pending apt updates for Proxmox nodes (#1083) 2026-01-21 10:53:36 +00:00
models_frontend.go fix: expose linkedHostAgentId and commandsEnabled to frontend 2026-01-02 20:04:20 +00:00
organization.go feat: add multi-tenant isolation foundation (disabled by default) 2026-01-23 21:42:27 +00:00
profile_validation.go feat(profiles): add AI-assisted profile suggestions 2026-01-15 13:24:18 +00:00
profile_validation_test.go feat(profiles): add AI-assisted profile suggestions 2026-01-15 13:24:18 +00:00
profiles.go fix(agent): add FreeBSD platform support to agent download and UI (#1051) 2026-01-11 23:51:12 +00:00
state_docker_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
state_host_test.go fix(models): extend namespace disambiguation to SyncGuestBackupTimes (#1095) 2026-01-12 15:11:59 +00:00
state_snapshot.go fix: deduplicate Ceph clusters by FSID before sending to frontend 2025-12-27 17:03:17 +00:00