- Menu items use url='{{entire_url('/module/table')}}' format
- init_permissions.py now registers both the page path and CRUD API endpoints
- Page path: /{module}/{table} (for menu navigation)
- API paths: /{module}/api/{table}_{list|create|update|delete}.dspy
1. Replace manual DB_CONFIG with getConfig('.').databases for DBPools init
2. Add id=getID() when inserting into rolepermission table (id has no default value)
3. Sync app/ and root copies
- perm_config.py: all paths no longer use /main prefix
- init_permissions.py:
1. scan wwwroot including symlinks for .ui/.dspy/.js/.css
2. register paths without /main prefix
3. create admin_superuser user (super/Kyy@123456)
4. use orgtypeid='*' for role wildcard matching
- sync app/ and root copies