at canon
1 folder
5 files
Server auth (Argon2id), gallery modules, refactor for code sharing
Server (modeler-server):
- auth.rs: add username + password authentication via Argon2id. Adds
Argon2/PasswordHash/PasswordHasher/PasswordVerifier deps, password
hashing helpers, password-based login endpoint, and set-password CLI
subcommand. Existing API-key auth flow preserved.
- admin.rs: expand admin routes/endpoints (--admin flag, set-password,
user management)
- db.rs: schema/migration updates to support password auth columns
- error.rs: new ApiError variants for the auth flow
- scenes.rs / assemblies.rs / sync.rs: metadata column plumbing already
covered by Wave 0-2, plus incidental fixes
- Cargo.toml: add argon2, tower, png, http, hyper, base64 deps; expand
tower-http features; dev-dependency for tower::util
- README.md: document username + password auth path, --admin/--username/
--password flags, set-password subcommand
- server/src/config.rs: removed (config integrated into main.rs)
- New modules: gallery.rs (pure logic, 446 lines), middleware.rs
(request_id, metrics, gallery_visibility_gate, 415 lines),
rate_limit.rs (login throttling, 59 lines), static_files.rs
(classify/mime_for/StaticDirService, 343 lines)
Client (modeler):
- src/app/gizmo_controller.rs: extract build_axis_gizmo helper, share
arrow-mesh code with modeler_geom
- src/csg/eval/builders.rs: remove unused add/scale helpers
- src/csg/eval/mod.rs: drop evaluate_tessellate_and_registry_preview
(superseded by the new evaluate_tessellate_mesh_only path)
- src/csg/mod.rs: add smart reparent that routes through modifier sources
(Pattern/Extrude/EdgeBlend) and auto-wraps the source in a Union
Operation when needed; remove dead nodes_mut and reparent helpers
- src/csg/pick.rs: drop arrow_transform (moved to modeler_geom)
- src/ui/cloud_settings.rs: rename auth_display_name to display_name
- src/ui/properties.rs: collapse render_add_child_candidates modifier
branching into the new smart reparent path
These changes ride on top of c31c503 (Waves 0-5) and close out the
auth/credential rework tracked under #57 and #58.