14 Commits

Author SHA1 Message Date
Benjamin
6ff6966193 refactor: implement config injection pattern and enhance admin access control
- Load configuration once in main.go and inject through dependencies
- Remove duplicate config.Load() calls in admin routes and server init
- Add AdminEmails field to AppConfig with lowercase normalization
- Implement HTML error pages for 403 Forbidden responses
- Add comprehensive debug logging for admin access verification
- Improve template conditional formatting for readability
- Add test coverage for admin email parsing (6 test cases)
2025-09-30 22:37:51 +02:00
Benjamin
8d3b7ba927 feat: improved the logging system to enable troubleshooting of OAuth2 errors:
- Added structured logs in HandleError() for each error type in middleware
 - Explicit log of the OAuth callback error before handling

feat: add configurable log level via ACKIFY_LOG_LEVEL
 - Add ParseLevel function to logger package
 - Extend config structure with LoggerConfig
 - Apply log level during server initialization
 - Update documentation and .env.example
2025-09-30 15:38:07 +02:00
Benjamin
1ae8287ca5 fix: memory leak or deferrer errors on tests files 2025-09-28 21:12:09 +02:00
Benjamin
5e41f14f94 refactor: reuse server DB; add request logging; tighten CSP with frame-ancestors and embed override 2025-09-26 23:32:20 +02:00
Benjamin
53aa233f66 feat: add admin dashboard with document and signature management
- Admin middleware with ACKIFY_ADMIN_EMAILS environment variable authentication
- Dashboard view listing all documents with signature counts (/admin)
- Document details view showing signataires and metadata (/admin/docs/{docID})
- Read-only admin repository with dedicated database connection
- Responsive UI templates consistent with existing design
- Secure route protection and proper error handling

Configuration: Set ACKIFY_ADMIN_EMAILS="email1@domain.com,email2@domain.com"
2025-09-23 23:03:08 +02:00
Benjamin
1a41d15df9 refactor: remove redundant comments and improve code readability
Remove trivial comments that duplicate what the code already expresses clearly.
Keep only essential documentation for public exports as per Go conventions.
This improves code maintainability and follows the principle that code should
be self-documenting.
2025-09-15 22:59:50 +02:00
Benjamin
aebef77434 feat: standardize environment variable names with ACKIFY_ prefix
- Renamed all environment variables to use consistent ACKIFY_ prefix
- Updated configuration files, Docker compose, and build documentation
- Modified database connection variables and OAuth configuration
- Updated crypto key environment variable reference
- Ensured consistency across all configuration files
2025-09-15 21:45:11 +02:00
Benjamin
ee64839bc8 fix: correct Docker migration service configuration
- Fix ackify-migrate service to run migrate binary instead of main server
- Add entrypoint override to bypass default ENTRYPOINT in Docker image
- Copy migrations directory to Docker image for migrate binary access
- Update migrate binary with better error handling and code quality
2025-09-15 16:53:15 +02:00
Benjamin
c1595ffe3e feat: migrate templates to embedded filesystem
- Move templates from web/templates/ to webtemplates/templates/
- Replace file-based template loading with Go embed
- Remove external template directory dependency from Dockerfile
- Add webtemplates package with embedded template functionality
- Include comprehensive tests for embedded templates
- Update server initialization to use new embedded template system

This change makes the application self-contained by embedding templates
directly in the binary, eliminating the need for external template files
at runtime.
2025-09-14 21:37:13 +02:00
Benjamin
bde1049343 feat: implement standalone SQL migration system
- Add golang-migrate based migration CLI in cmd/migrate/
- Extract hardcoded SQL migrations from connection.go to proper migration files
- Create 0001_init migration with complete signatures table schema
- Remove embedded migrations from Go code for cleaner separation
- Support up/down/version/drop migration operations
- Migration files follow semantic versioning starting at 0001
2025-09-14 17:59:33 +02:00
Benjamin
18c8d61d75 feat: migrate to chi router for ee integration 2025-09-14 15:54:51 +02:00
Benjamin
dbe27434e4 fix: gofmt 2025-09-13 22:36:55 +02:00
Benjamin
c38558fea6 feat: refactor Ackify to support CE/EE separation
- Move web server logic to pkg/web package for external imports
- Rename cmd/ackify to cmd/community for clarity
- Create NewServer(multitenant bool) function for EE integration
- Add basic unit tests for Community Edition
- Update Dockerfile to build from cmd/community
- Add comprehensive build and deployment documentation

This change enables the Enterprise Edition to import and extend
the Community Edition while maintaining clean separation.
2025-09-13 22:28:27 +02:00
Benjamin
62f8a56c7a feat: initial project setup
Add complete Go application for cryptographic document signature validation with OAuth2 authentication, Ed25519 signatures, and PostgreSQL storage following clean architecture principles.
2025-09-10 17:10:22 +02:00