a807d97345
Merge pull request 'Merge to LOAF-PROD for Demo' (#27) from dev into loaf-prod
loaf-prod
andika2026-02-02 11:11:36 +00:00
e7f6e9c20a
Update Stripe publishable key storage in Stripe Settings 1. Updated UpdateStripeSettingsRequest - Added publishable_key field 2. Updated update_stripe_settings endpoint - Now validates and stores: - stripe_publishable_key (not encrypted - it's public) - stripe_secret_key (encrypted) - stripe_webhook_secret (encrypted) - Also validates that publishable and secret keys are from the same environment (both test or both live) 3. Added new public endpoint GET /api/config/stripe - Returns the publishable key to the frontend (no auth required since it's meant to be public) 4. Updated get_stripe_status endpoint - Now includes publishable_key_prefix and publishable_key_set in the response
dev
Andika2026-02-02 17:52:25 +07:00
dd41cf773b
- Added DEFAULT_DIRECTORY_CONFIG constant with all directory fields - Added get_directory_config() and save_directory_config() helper functions - Created 4 new endpoints: - GET /api/directory/config - Public endpoint for frontend - GET /api/admin/directory/config - Admin view with metadata - PUT /api/admin/directory/config - Update configuration - POST /api/admin/directory/config/reset - Reset to defaults - Fixed a bug: Changed SystemSettings.key → SystemSettings.setting_key (correct column name) - Added JSON serialization/deserialization for storing config in Text column
Andika2026-02-02 17:05:27 +07:00
1c262c4804
1. Database Migration (backend/alembic/versions/014_add_custom_registration_data.py)- Adds custom_registration_data JSON column to users table for storing dynamic field responses2. User Model (backend/models.py)- Added custom_registration_data = Column(JSON, default=dict, nullable=False) to User model3. New API Endpoints (backend/server.py)- GET /api/registration/schema - Public endpoint returning form schema- GET /api/admin/registration/schema - Admin view with metadata- PUT /api/admin/registration/schema - Update schema- POST /api/admin/registration/schema/validate - Validate schema structure- POST /api/admin/registration/schema/reset - Reset to default- GET /api/admin/registration/field-types - Get available field types4. Validation Functions- validate_dynamic_registration() - Validates form data against schema- split_registration_data() - Splits data between User columns and custom_registration_data- evaluate_conditional_rules() - Evaluates show/hide rules5. Permissions (backend/seed_permissions_rbac.py)- Added registration.view and registration.manage permissions
Koncept Kit
2026-02-01 19:43:28 +07:00
a053075a30
Fix permission rbac
Koncept Kit
2026-01-31 01:26:12 +07:00
6f8ec1d254
make the migration idempotetnt
Koncept Kit
2026-01-31 01:16:02 +07:00
9754f2db6e
1. Models (backend/models.py)- Added PaymentMethodType enum (card, cash, bank_transfer, check)- Added stripe_customer_id column to User model- Created new PaymentMethod model with all fields specified in the plan2. Alembic Migration (backend/alembic/versions/add_payment_methods.py)- Creates payment_methods table- Adds stripe_customer_id to users table- Creates appropriate indexes3. API Endpoints (backend/server.py)Added 12 new endpoints:Member Endpoints:- GET /api/payment-methods - List user's payment methods- POST /api/payment-methods/setup-intent - Create Stripe SetupIntent- POST /api/payment-methods - Save payment method after setup- PUT /api/payment-methods/{id}/default - Set as default- DELETE /api/payment-methods/{id} - Remove payment methodAdmin Endpoints:- GET /api/admin/users/{user_id}/payment-methods - List user's methods (masked)- POST /api/admin/users/{user_id}/payment-methods/reveal - Reveal sensitive details (requires password)- POST /api/admin/users/{user_id}/payment-methods/setup-intent - Create SetupIntent for user- POST /api/admin/users/{user_id}/payment-methods - Save method on behalf- POST /api/admin/users/{user_id}/payment-methods/manual - Record manual method (cash/check)- PUT /api/admin/users/{user_id}/payment-methods/{id}/default - Set default- DELETE /api/admin/users/{user_id}/payment-methods/{id} - Delete method4. Permissions (backend/permissions_seed.py)Added 5 new permissions:- payment_methods.view- payment_methods.view_sensitive- payment_methods.create- payment_methods.delete- payment_methods.set_default
Koncept Kit
2026-01-31 01:03:17 +07:00
03e5dd8bda
- 7 new API endpoints\ - Public theme config endpoint for frontend initialization (with 5-min cache)/- Admin CRUD for theme settings (get, update, reset)/- Logo and favicon upload/delete via Cloudflare R2 storage
Koncept Kit
2026-01-27 21:31:17 +07:00
ab0f098f99
- Fix Member Directory to include staff- Implement Member Tiers settings endpoints
Koncept Kit
2026-01-27 16:15:44 +07:00
8695944ef8
Merge pull request '- Add Dockerfile and .dockerignore- Fix initial DB creation- Fix seed permission' (#26) from dev into dav-prod
dav-prod
andika2026-01-26 13:07:56 +00:00
ea87b3f6ee
- Add Dockerfile and .dockerignore- Fix initial DB creation- Fix seed permission
Koncept Kit
2026-01-26 20:06:22 +07:00
7d61eddcef
Merge pull request 'dev' (#25) from dev into loaf-prod
andika2026-01-26 11:20:14 +00:00
b29bb641f5
Fixes
Koncept Kit
2026-01-24 23:56:21 +07:00
d322d1334f
1. Added member_since to GET Response- - Endpoint: GET /api/admin/users/{user_id}- Now includes: member_since: 2024-03-15T10:30:00Z (or null)2. Created NEW PUT Endpoint for Admin User Profile Updates- Endpoint: PUT /api/admin/users/{user_id}- Permission Required: users.edit (admins and superadmins have this)
Koncept Kit
2026-01-21 11:35:19 +07:00
ece1e62913
Was reading from .env only → ✅ NOW FIXED to read from database
Koncept Kit
2026-01-21 00:10:02 +07:00
d3a0cabede
- Details Column - Expandable chevron button for each row- Expandable Transaction Details - Click chevron to show/hide details- Payment Information Section:- Stripe Transaction IDs Section- Copy to Clipboard - One-click copy for all transaction IDs- Update Stripe webhook event permission on Stripe Config page.
Koncept Kit
2026-01-20 23:51:38 +07:00
e938baa78e
- Add Settings menu for Stripe configuration- In the Member Profile page, Superadmin can assign new Role to the member- Stripe Configuration is now stored with encryption in Database
Koncept Kit
2026-01-16 19:07:58 +07:00
a5fc42b353
Merge pull request 'Database prevent dead connection errors and make login work on the first try' (#24) from dev into loaf-prod
andika2026-01-07 09:42:14 +00:00
39324ba6f6
Database prevent dead connection errors and make login work on the first try
Koncept Kit
2026-01-07 16:23:01 +07:00
37b1ab75df
Merge pull request 'Merge from Dev to LOAF Production' (#23) from dev into loaf-prod
andika2026-01-07 08:43:14 +00:00
adbfa7a3c8
- Fixed MutableHeaders bug- Disable API docs in production- CORS diagnostic endpoint- Security headers + CORS middlewareMust have ENVIRONMENT=production and CORS_ORIGINS=... in .env file
Koncept Kit
2026-01-07 14:21:47 +07:00
a74f161efa
Security Hardening #1
Koncept Kit
2026-01-07 14:15:50 +07:00
d818d847bc
Security Hardening
Koncept Kit
2026-01-07 14:03:38 +07:00
1390e07500
Login and Session Fixes
Koncept Kit
2026-01-07 13:37:28 +07:00
38e5f5377a
Merge branch 'dev' into docker
kayela2026-01-06 12:31:29 -06:00
e06f18ce17
Add start script for backend server initialization and update .gitignore
kayela2026-01-06 12:30:26 -06:00
f915976cb3
Merge pull request 'feat: Implement Option 3 - Proper RBAC with role-based staff invitations' (#22) from dev into loaf-prod
andika2026-01-06 08:35:09 +00:00
810366d00f
feat: Implement Option 3 - Proper RBAC with role-based staff invitations
Koncept Kit
2026-01-06 14:42:25 +07:00
84285861cc
Merge branch 'dev' into docker
kayela2026-01-05 13:01:16 -06:00