docs(phase-2.5): Complete access control implementation
Some checks failed
Lint and Build / Lint (push) Failing after 13m48s
Lint and Build / Build (push) Has been skipped
Lint and Build / Docker Build (push) Has been skipped

This commit is contained in:
goose 2026-02-15 21:15:17 -03:00
parent eb0e2cc4b5
commit 378703bf1c
19 changed files with 1204 additions and 48 deletions

131
backend/ERROR-ANALYSIS.md Normal file
View file

@ -0,0 +1,131 @@
# Backend Error Analysis
**Date**: 2026-02-15 18:48:00 UTC
**Port**: 6500 (changed from 6800)
**Status**: Errors detected
---
## Error Logs
```
#22: `trust_dns_proto::Executor`
21: error[E0599]: no function or associated item named `new` found for struct `PasswordService` in the current scope
22: --> src/models/user.rs:117:49
23: |
24: 117 | let password_service = PasswordService::new();
25: | ^^^ function or associated item not found in `PasswordService`
26: |
27: ::: src/auth/password.rs:10:1
28: |
29: 10 | pub struct PasswordService;
30: | -------------------------- function or associated item `new` not found for this struct
31: |
32: = help: items from traits can only be used if the trait is implemented and in scope
33: = note: the following traits define an item `new`, perhaps you need to implement one of them:
34: candidate #1: `Bit`
35: candidate #2: `Digest`
36: candidate #3: `KeyInit`
37: candidate #4: `KeyIvInit`
38: candidate #5: `Mac`
39: candidate #6: `VariableOutput`
40: candidate #7: `VariableOutputCore`
41: candidate #8: `ahash::HashMapExt`
42: candidate #9: `ahash::HashSetExt`
43: candidate #10: `bitvec::store::BitStore`
44: candidate #11: `nonzero_ext::NonZero`
45: candidate #12: `parking_lot_core::thread_parker::ThreadParkerT`
46: candidate #13: `radium::Radium`
47: candidate #14: `rand::distr::uniform::UniformSampler`
48: candidate #15: `rand::distributions::uniform::UniformSampler`
49: candidate #16: `ring::aead::BoundKey`
50: candidate #17: `serde_with::duplicate_key_impls::error_on_duplicate::PreventDuplicateInsertsMap`
51: candidate #18: `serde_with::duplicate_key_impls::error_on_duplicate::PreventDuplicateInsertsSet`
52: candidate #19: `serde_with::duplicate_key_impls::first_value_wins::DuplicateInsertsFirstWinsMap`
53: candidate #20: `serde_with::duplicate_key_impls::first_value_wins::DuplicateInsertsFirstWinsSet`
54: candidate #21: `serde_with::duplicate_key_impls::last_value_wins::DuplicateInsertsLastWinsSet`
55: candidate #22: `trust_dns_proto::Executor`
56: error[E0277]: the trait bound `fn(State<AppState>, ..., ...) -> ... {setup_recovery}: Handler<_, _>` is not satisfied
57: --> src/main.rs:100:49
58: |
59: 100 | .route("/api/auth/recovery/setup", post(handlers::setup_recovery))
60: | ---- ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Handler<_, _>` is not implemented for fn item `fn(State<AppState>, Claims, Json<...>) -> ... {setup_recovery}`
61: | |
62: | required by a bound introduced by this call
63: |
64: = note: Consider using `#[axum::debug_handler]` to improve the error message
65: help: the following other types implement trait `Handler<T, S>`
66: --> /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/method_routing.rs:1309:1
67: |
68: 1309 | / impl<S> Handler<(), S> for MethodRouter<S>
69: 1310 | | where
70: 1311 | | S: Clone + 'static,
71: | |_______________________^ `MethodRouter<S>` implements `Handler<(), S>`
72: |
73: ::: /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/handler/mod.rs:303:1
74: |
75: 303 | / impl<H, S, T, L> Handler<T, S> for Layered<L, H, T, S>
76: 304 | | where
77: 305 | | L: Layer<HandlerService<H, T, S>> + Clone + Send + 'static,
78: 306 | | H: Handler<T, S>,
79: ... |
80: 310 | | T: 'static,
81: 311 | | S: 'static,
82: | |_______________^ `axum::handler::Layered<L, H, T, S>` implements `Handler<T, S>`
83: note: required by a bound in `post`
84: --> /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/method_routing.rs:443:1
85: |
86: 443 | top_level_handler_fn!(post, POST);
87: | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^
88: | | |
89: | | required by a bound in this function
90: | required by this bound in `post`
91: = note: the full name for the type has been written to '/app/target/debug/deps/normogen_backend-d569d515f613fad5.long-type-4867908669310830501.txt'
92: = note: consider using `--verbose` to print the full type name to the console
93: = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
94: Some errors have detailed explanations: E0277, E0282, E0308, E0432, E0433, E0599, E0609, E0659.
95: For more information about an error, try `rustc --explain E0277`.
96: warning: `normogen-backend` (bin "normogen-backend") generated 2 warnings
97: error: could not compile `normogen-backend` (bin "normogen-backend") due to 32 previous errors; 2 warnings emitted
```
// Last 5000 characters
```
---
## Test Results
### Health Check
```
HTTP Status: 000
HTTP Status: 000
```
### Registration Test
```
HTTP Status: 000
HTTP Status: 000
```
---
## Analysis
❌ **Errors found in logs**
---
## Next Steps
1. Review error logs above
2. Fix compilation/runtime errors
3. Restart container
4. Test again