v0.18.0
The security update
This update has some pretty massive database migrations and changes to the docker-compose.yml file, please backup your database and read the change notes before upgrading.
Added
- Platform admin blocker resolution for user deletion
- New admin endpoints to delete guilds, promote guild members, and promote initiative members
- Enhanced deletion eligibility response includes detailed blocker info with promotable members
- Delete user dialog now shows "Resolve Blockers" step with inline actions
- Admins can promote another member to guild admin or delete the guild entirely
- Admins can promote another member to project manager for initiatives
- Auto-advances to next step when all blockers are resolved
- PostgreSQL Row Level Security (RLS) for guild data isolation
- Database-level access control ensures users can only access data within their current guild
- Defense-in-depth protection in addition to application-level access controls
- Denormalized
guild_idcolumns added to all tier 2/3 tables for efficient policy evaluation - Automatic triggers maintain guild_id consistency when parent relationships change
- New
RLSSessionDepdependency for routes that need database-level access control - Admin bypass role (
app_admin) for migrations and background jobs
- Role-based platform admin system with promote/demote functionality
- Multiple users can now be platform admins (no longer limited to user ID 1)
- Platform admins can promote/demote other users via Platform Users settings page
- Protection against demoting the last platform admin
- Platform roles and guild roles are now completely independent
- Guild Users page now manages guild roles separately from platform roles
ENABLE_PUBLIC_REGISTRATIONenvironment variable to control public registration- When set to
false, all new users must register via an invite link - Bootstrap (first user) registration is always allowed regardless of setting
- Landing page and register page adapt UI based on this setting
- When set to
- Platform admins can now create guilds when
DISABLE_GUILD_CREATION=true- Regular users are still blocked from creating guilds when this flag is enabled
- The
can_create_guildsfield in user responses now reflects platform admin status
Changed
- Docker users:
DATABASE_URL_ADMINenvironment variable is now required for RLS migrations- RLS migrations need superuser privileges to create the
app_adminrole withBYPASSRLS - Add to your docker-compose:
DATABASE_URL_ADMIN: postgresql+asyncpg://postgres:${POSTGRES_PASSWORD:-initiative}@db:5432/initiative - This URL uses the
postgressuperuser; the regularDATABASE_URLcontinues using the restrictedinitiativeuser
- RLS migrations need superuser privileges to create the
- Destructive actions now use confirmation dialogs instead of browser alerts
Downloads
Android App
Download the APK from the assets below and install on your Android device.
Docker Image
docker pull morelitea/initiative:0.18.0Or use latest tag. View on Docker Hub.