97 Commits

Author SHA1 Message Date
b2b77eb4da refactor: remove vendor directory to use Go proxy service
Removes local vendor directory in favor of Go module proxy for cleaner
repository and improved dependency management. Dependencies will now be
fetched automatically from proxy.golang.org during builds.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
v0.2.0
2025-07-01 23:10:28 +12:00
6558a09258 deps: update vendor dependencies for S3-compatible storage
Updates AWS SDK and removes Blazer B2 dependency in favor of unified
S3-compatible approach. Includes configuration examples and documentation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 23:07:58 +12:00
f99a866e13 feat: implement unified S3-compatible storage system
Consolidates storage backends into a single S3-compatible driver that supports:
- AWS S3 (native)
- Backblaze B2 (S3-compatible API)
- Cloudflare R2 (S3-compatible API)
- MinIO and other S3-compatible services
- Local filesystem for development

This replaces the previous separate B2 driver with a unified approach,
reducing dependencies and complexity while adding support for more services.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 23:07:44 +12:00
e3152d9f40 fix: correct environment variables in justfile run-dev command
- Fix OA_DATABASE_DRIVER to OA_DATABASEDRIVER (no underscore)
- Fix OA_DATABASE_FILE to OA_DATABASEFILE (no underscore)
- Change database filename from test2.db to dev.db for better naming
- Ensure SQLite database is created in project root as expected

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:22:28 +12:00
e78098ad45 feat: update gitignore for attachment system
- Add .vscode/ to ignore IDE-specific files
- Add server to ignore build artifacts
- Add attachments/ to ignore uploaded attachment files
- Maintain clean repository without development artifacts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:06:29 +12:00
7c43726abf fix: correct WebSocket message logging format
- Change format specifier from %s to %+v for struct logging
- Resolve compilation error in WebSocket message handling
- Maintain proper logging functionality for debugging

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:05:37 +12:00
b7ac4b0152 fix: add missing mock expectations in account tests
- Add GetSplitCountByAccountId mock expectations for CreateAccount tests
- Add GetSplitCountByAccountId mock expectations for UpdateAccount tests
- Resolve "unexpected method call" errors in account test suite
- Maintain existing test logic while fixing mock setup

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:05:21 +12:00
1b115fe0ff feat: add attachment methods to mock datastore
- Add InsertAttachment mock method for testing
- Add GetAttachment and GetAttachmentsByTransaction mock methods
- Add DeleteAttachment mock method for testing
- Maintain consistency with existing mock patterns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:05:05 +12:00
a87df47231 feat: register attachment API routes
- Add 5 RESTful endpoints for transaction attachment management
- Include proper authentication middleware for all attachment operations
- Follow existing URL pattern: /orgs/:orgId/transactions/:transactionId/attachments
- Support nested resource access with proper authorization

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:04:50 +12:00
8b0a72c81f feat: implement attachment REST API endpoints
- Add POST /attachments for secure multi-file upload with validation
- Add GET /attachments for listing transaction attachments
- Add GET /attachments/:id for attachment metadata retrieval
- Add GET /attachments/:id/download for secure file download
- Add DELETE /attachments/:id for soft deletion
- Include comprehensive security validation: file type, size, content detection
- Implement proper error handling and cleanup on failures

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:04:32 +12:00
f64f83e66f feat: add attachment support to GORM model
- Implement AttachmentInterface methods in GormModel
- Add GetTransaction method for interface compliance
- Include placeholder implementation for future GORM repository development
- Maintain backward compatibility with existing GORM usage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:04:15 +12:00
f5f0853040 feat: implement attachment business logic layer
- Add AttachmentInterface to main model interface
- Implement attachment CRUD operations with permission checking
- Add GetTransaction method for secure attachment access validation
- Add accountsContainReadAccess for permission verification
- Ensure users can only access attachments for authorized transactions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:04:01 +12:00
04653f2f02 feat: implement attachment database layer
- Add AttachmentInterface to main Datastore interface
- Implement CRUD operations for attachments following existing patterns
- Add proper SQL marshalling/unmarshalling with HEX/UNHEX for binary IDs
- Include soft deletion and proper indexing support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:03:44 +12:00
3b89d8137e feat: add UUID utility functions for attachment system
- Add NewUUID() function for generating unique attachment identifiers
- Add IsValidUUID() function for validating UUID format in API requests
- Support 32-character hex string validation for secure file handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:03:30 +12:00
d10686e70f feat: add attachment model type definitions
- Add core attachment type with metadata fields for transaction files
- Add GORM model for attachment with proper relationships
- Include file information, upload timestamps, and soft deletion support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:03:13 +12:00
c335c834ba feat: add database schema for transaction attachments
- Add attachment table with fields for file metadata and relationships
- Include indexes for optimal query performance on transactionId, orgId, userId, and uploaded fields
- Support for file storage with path tracking and soft deletion

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 11:02:58 +12:00
b5ea2095e4 fix: update authentication layer for GORM repository integration
- Update auth.go to use new repository interfaces
- Fix test compilation errors in auth_test.go
- Maintain compatibility with existing authentication flows
- Update mock implementations for repository pattern

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
v0.1.0
2025-06-30 22:09:36 +12:00
88c996a383 deps: update dependencies for GORM, Viper, and SQLite support
- Add GORM v1.25.12 with MySQL and SQLite drivers
- Add Viper v1.19.0 for configuration management
- Add UUID package for GORM model IDs
- Update vendor directory with new dependencies
- Update Go module requirements and checksums

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:09:22 +12:00
8c7088040d docs: comprehensive README update with Docker and Viper documentation
- Add complete Viper configuration documentation
- Include Docker deployment examples and best practices
- Document environment variable configuration options
- Add Just build automation usage examples
- Create troubleshooting and migration guides
- Update prerequisites and setup instructions
- Add security guidelines for production deployments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:09:10 +12:00
77ab4b0e1d feat: add Just build automation with comprehensive recipes
- Create justfile with development and production recipes
- Add Docker build and run commands with proper configuration
- Include database management utilities and migration helpers
- Add development setup and dependency management
- Create configuration help and documentation commands
- Support both SQLite and MySQL deployment scenarios

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:09:00 +12:00
62dea0e53c feat: add Docker containerization with multi-stage build
- Create production-ready Dockerfile with multi-stage build
- Add CGO support for SQLite driver compilation
- Implement security best practices with non-root user
- Add health checks with proper API version headers
- Create .dockerignore for optimized build context
- Support both SQLite and MySQL in containerized environment
- Include volume mounting for data persistence

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:08:49 +12:00
d2ea9960bf feat: update config samples with SQLite and Viper support
- Add SQLite configuration options to config.json.sample
- Create config.mysql.json.sample for MySQL deployments
- Add security comments for sensitive configuration
- Include environment variable examples and documentation
- Add Viper configuration comments and usage examples

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:08:34 +12:00
f547d8d75b feat: integrate Viper for advanced configuration management
- Replace basic config loading with Viper framework
- Add support for multiple config sources (files, env vars, defaults)
- Add mapstructure tags for proper config binding
- Support JSON, YAML, and TOML config formats
- Add environment variable support with OA_ prefix
- Implement secure config loading with multiple search paths
- Maintain backward compatibility with existing config.json files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:08:19 +12:00
0d1cb22044 refactor: update data access layer to use GORM repositories
- Replace SQL-based queries with GORM repository calls
- Update all model interfaces to use repository pattern
- Fix compilation errors in core/model/ files
- Update mocks to match new repository interfaces
- Modify API handlers to use new repository layer
- Maintain backward compatibility with existing interfaces

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:08:08 +12:00
bd3f101fb4 feat: add GORM integration with repository pattern
- Add GORM models in models/ directory with proper column tags
- Create repository interfaces and implementations in core/repository/
- Add database package with MySQL and SQLite support
- Add UUID ID utility for GORM models
- Implement complete repository layer replacing SQL-based data access
- Add database migrations and index creation
- Support both MySQL and SQLite drivers with auto-migration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:07:51 +12:00
e865c4c1a2 fix: Add gorm and driver
Updated existing vendored dependencies
2025-06-09 22:56:57 +12:00
51deace1da refactor: Removed standalone migration apps. Causes build fail 🔥 2025-06-09 22:53:25 +12:00
Patrick Nagurny
9b0c1e2ac8 Merge pull request #30 from pnagurny/enhance/readme-docker
link to docker repo
2023-09-22 11:29:47 -06:00
Patrick Nagurny
b7d2a20a2b link to docker repo 2023-09-22 11:28:40 -06:00
Patrick Nagurny
a506368f16 Merge pull request #29 from pnagurny/bug/slackinvite
update slack invite link
2023-09-21 14:47:59 -06:00
Patrick Nagurny
a3fc3311a3 update slack invite link 2023-09-21 14:45:30 -06:00
Patrick Nagurny
4821cbca62 Merge pull request #22 from pnagurny/bug/fix-tx-pagination
fix txs by account pagination bug
2021-01-28 12:50:03 -07:00
Patrick Nagurny
df6901ef8a fix txs by account pagination bug 2021-01-28 12:47:49 -07:00
Patrick Nagurny
a4500d9114 Merge pull request #19 from pnagurny/enhance/mailgun-sender
Enhance/mailgun sender
2020-11-25 10:29:29 -05:00
Patrick Nagurny
4e472c9508 fix from 2020-11-25 10:25:20 -05:00
Patrick Nagurny
a5ebe35890 make Sender header match From 2020-11-25 10:15:16 -05:00
Patrick Nagurny
2f07dd4cda Merge pull request #18 from pnagurny/feature/mailgun
Feature/mailgun
2020-11-23 11:36:26 -05:00
Patrick Nagurny
73bf3953c2 switch to mailgun 2020-11-23 11:13:23 -05:00
Patrick Nagurny
ece803ec68 mailgun dep 2020-11-23 11:12:53 -05:00
Patrick Nagurny
b011b28cf5 Merge pull request #17 from pnagurny/enhance/login-case
remove spaces and convert email to lowercase
2020-07-23 12:32:17 -06:00
Patrick Nagurny
6ec5177aae remove spaces and convert email to lowercase 2020-07-23 12:31:09 -06:00
Patrick Nagurny
2fbbddf9bb Merge pull request #16 from pnagurny/enhance/logger-elapsed-time
add elapsed time to logger
2020-01-15 12:07:52 -05:00
Patrick Nagurny
0ea88b8e25 add elapsed time to logger 2020-01-15 12:06:56 -05:00
Patrick Nagurny
f2554a6b1b Merge pull request #15 from pnagurny/bug/create-account-parent
fix issue #13
2020-01-15 11:23:04 -05:00
Patrick Nagurny
122449f8fc fix issue #13 2020-01-15 11:21:23 -05:00
Patrick Nagurny
45fc45736d budget api doc fix 2020-01-14 14:51:27 -05:00
Patrick Nagurny
5ff655f3ea update apidoc for 1.4.0 2020-01-14 14:46:38 -05:00
Patrick Nagurny
01ab717cf9 Merge pull request #14 from pnagurny/feature/budget
Feature/budget
2020-01-14 14:32:18 -05:00
Patrick Nagurny
f2877230e2 format code 2020-01-14 14:29:00 -05:00
Patrick Nagurny
83f3cfc983 api version 1.4.0 2020-01-14 14:22:15 -05:00