Commit graph

19 commits

Author SHA1 Message Date
9a6369bd27
Fix agent API protobuf support and Mix.env runtime error
Fixed two critical issues preventing agent communication:

1. Fix Mix.env() runtime error in production
   - Replace Mix.env() with Application.get_env(:towerops, :env)
   - Add :env config to test.exs
   - Mix module not available in production releases

2. Add Protocol Buffers support to agent API endpoints
   - GET /api/v1/agent/config now accepts application/x-protobuf
   - POST /api/v1/agent/heartbeat now accepts application/x-protobuf
   - Added conversion functions for config/equipment/sensors/interfaces
   - Maintains JSON backward compatibility as fallback

All agent controller tests passing (14 tests, 0 failures)
2026-01-14 16:35:47 -06:00
569b5cb671
Make agent Docker image configurable and update success criteria
- Added agent_docker_image config option (defaults to towerops/agent:latest)
- Updated agent UI modal to use configurable image URL
- Can override in runtime.exs or environment config for production
- Updated AGENT_NEXT_STEPS.md success criteria with completion status
- 8/12 success criteria now complete
2026-01-14 09:16:48 -06:00
5e1a97fcb3
fix tests 2026-01-11 14:58:55 -06:00
f16b0ebabd
awsses 2026-01-11 14:55:07 -06:00
0f238ac33d
set up ses 2026-01-09 16:52:11 -06:00
4f924ba9a7
add passkey 2026-01-09 12:26:32 -06:00
c3303cc194
moar tests 2026-01-06 15:43:54 -06:00
cb9c095847
Set logger level to info in development to prevent credential exposure
SNMPKit library logs complete SNMP messages at debug level, which
includes the community string (credential). Setting log level to :info
prevents these debug messages from appearing in development logs.

Production and test environments already use :info and :warning levels.
2026-01-05 14:35:09 -06:00
4242044cbd
Add parameter filtering to redact SNMP community strings from logs 2026-01-05 13:48:39 -06:00
ffb2b9576f
Remove force_ssl config since Traefik handles SSL termination 2026-01-05 13:23:38 -06:00
9a721191fe
Set default email sender to hi@towerops.net
Configure mailer_from in runtime config and update UserNotifier
and AlertNotifier to use the configured from address.
2026-01-04 11:16:12 -06:00
aed28de923
Fix SSL redirect excluding /health endpoint
Move exclude option inside force_ssl config so /health endpoint
is not redirected to HTTPS (needed for k8s readiness probe).
2026-01-03 16:52:28 -06:00
2e3094634c
Exclude /health endpoint from SSL redirect
Prevents excessive 301 redirect logs from Kubernetes health probes
2026-01-03 15:50:31 -06:00
80cc5e937e
add sendgrid 2026-01-03 15:26:48 -06:00
8cbca259fc
snmp bits 2026-01-03 14:41:28 -06:00
da42d64494
cluster 2026-01-02 15:29:02 -06:00
c52f313e2d
1. User Authentication
- Full auth system with email/password (using phx.gen.auth)
  - Login, registration, password reset
  - Session management with remember-me functionality
  - Magic link login support

  2. Organization Management
  - Multi-tenant organization system
  - Organizations schema with unique slugs
  - Automatic organization creation when users register
  - Organization switcher UI at /orgs

  3. Membership System
  - Users can belong to multiple organizations
  - 4 permission levels: Owner, Admin, Member, Viewer
  - Complete permission matrix implemented
  - Join/leave organizations

  4. Invitation System
  - Email-based invitations with secure tokens
  - 7-day expiration on invites
  - Track who invited and who accepted

  5. Authorization
  - Full policy system (Organizations.Policy)
  - can?(membership, :action, :resource) helper
  - Enforced via plugs in router

  6. LiveView Pages
  - /orgs - List all your organizations
  - /orgs/new - Create new organization
  - /orgs/:slug - Organization dashboard (placeholder)

  7. Database Schema
  - users table
  - organizations table
  - organization_memberships table
  - organization_invitations table
  - All migrations run successfully
2025-12-21 13:31:59 -06:00
20d2d8dbd8
format 2025-12-21 11:31:08 -06:00
ba463dc5a2
init 2025-12-21 11:10:43 -06:00