You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Framework migration from Fiber v2 to v3, grounded in the official
migration guide, rebased onto the post-#661 dependency state.
**Mechanical**: import path `fiber/v3`; handlers take the `fiber.Ctx`
interface (102 sites); `c.UserContext()` → `c.Context()` (36 sites);
`c.Redirect(...)` → the v3 builder (27 sites); `c.BodyParser` →
`c.Bind().Body` (2 sites); `app.Test` timeout args → `fiber.TestConfig`.
**Semantic surfaces**: session store via `session.NewStore` with
`Expiration` → `IdleTimeout`, and a pooled-session `Release()` added at
all nine `store.Get` sites; CSRF config moves to `Extractor:
extractors.FromForm` + `IdleTimeout`, and the removed `ContextKey` means
the token is read via `csrf.TokenFromContext`; the removed filesystem
middleware becomes the static middleware serving the embedded FS;
`EnableTrustedProxyCheck`/`TrustedProxies` become
`TrustProxy`/`TrustProxyConfig`.
**Behavior changes inherited from v3, deliberate and documented**: bare
redirects answer **303 See Other** instead of 302 Found; JSON responses
carry `; charset=utf-8`; v3's CSRF middleware additionally enforces
Origin/Referer/Sec-Fetch-Site consistency on unsafe methods (browser
flows unaffected — e2e green; a non-browser client stripping
Origin+Referer would newly 403); and v3's `c.IP()` now resolves the real
peer right-to-left past the trusted proxies instead of echoing the raw
client-controlled X-Forwarded-For — which **hardens** the login rate
limiter (previously a forged XFF entry evaded blocking).
**Adversarial review round** (tip 4c2d04a reviewed, fixes in 064f305):
the four designated high-risk items were verified with source- and
probe-level evidence — static asset resolution proven equivalent
empirically (200 + correct bytes + `Cache-Control` for `/static/js/*`,
`/static/app.css`, `/static/vendor/*`; traversal blocked), all nine
session `Release()` sites checked against the v3.5.0 pool implementation
(no double-release, Release-after-Destroy safe, login releases after
Save, no CSRF/session aliasing), the CSRF render→extract→validate round
trip is pinned by `bulk_csrf_test.go` and the e2e login-form test, and
the trust-proxy change was analyzed as above. The review's one Required
finding is fixed in 064f305: the doc/ops sweep — monitoring/deployment
runbook health checks now accept 303 (they would have raised false
CRITICAL alerts), the API docs' 302 statuses corrected,
`internal/web/AGENTS.md` rewritten from v2 to v3 teachings,
architecture/knowledge-base v2 references updated. Plus the review's
test-gap nit: `TestApp_StaticAssetsServed` now pins the static mount,
red-green verified (broken mount → fails with 303, restored → passes).
**Round-2 verification** (fresh agent on 064f305): all seven fix claims
verified PASS with module-source evidence; its two leftover findings of
the same class — the package godoc in `internal/web/doc.go` (the
pkg.go.dev surface), `docs/INDEX.md` and `cmd/AGENTS.md` still saying
Fiber v2 — are fixed in ff72324 together with aligning the AGENTS.md
CSRF example to the real config (`FromForm`, not `FromHeader`). A
repo-wide grep now finds zero live Fiber v2 claims (dated plan archives
excepted). Round 3 = that mechanical sweep plus this CI run: no findings
remain.
**Tests**: session stores via `NewStore`; the `fiber.Storage` mock
gained the v3 context-aware methods; CSRF tests read the token via
`TokenFromContext`; shifted test fixtures and one docs example password
carry detect-secrets allowlist pragmas; markdownlint's pre-existing
findings in the touched docs are fixed in the same pass.
Verified locally under go1.27.0 at 064f305: `templ generate` + build,
vet, golangci-lint (0 issues), `go test -race` (8 packages), `go mod
verify` clean; fiber v2 has left the module graph entirely.
_Assisted by claude-code:claude-fable-5 —
[Session](https://claude.ai/code/session_01L7tF9XuJfAfFk4yuY5KfPK)_
Copy file name to clipboardExpand all lines: cmd/AGENTS.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,12 @@
4
4
5
5
## Overview
6
6
7
-
The `cmd/` directory contains the main entry point for the LDAP Manager application. This follows Go's standard project layout for executable binaries.
7
+
The `cmd/` directory contains the main entry point for the LDAP Manager application. This follows Go's standard
8
+
project layout for executable binaries.
8
9
9
10
-**Location**: `cmd/ldap-manager/main.go`
10
11
-**Purpose**: CLI initialization, configuration parsing, server startup
11
-
-**Framework**: Uses Fiber v2 web framework via `internal/web` package
12
+
-**Framework**: Uses Fiber v3 web framework via `internal/web` package
|[**CSS Analysis**](../claudedocs/css-analysis.md)| CSS structure and optimization opportunities | 2025-09-30 |
137
137
138
-
**Purpose:** These reports provide deep technical insights for developers, architects, and operations teams. Generated during development sessions for knowledge preservation and decision documentation.
138
+
**Purpose:** These reports provide deep technical insights for developers, architects, and operations teams. Generated
139
+
during development sessions for knowledge preservation and decision documentation.
_This index is maintained automatically and manually. Last comprehensive update: 2025-09-30 (Enhanced with PR #267 details, claudedocs integration, and API module reference)_
455
+
This index is maintained automatically and manually. Last comprehensive update: 2025-09-30 (Enhanced with PR #267
456
+
details, claudedocs integration, and API module reference)
454
457
455
458
**📌 Bookmark this page** - it's your hub for all LDAP Manager documentation.
This architecture provides a solid foundation for a secure, performant, and maintainable LDAP directory management system. The modular design allows for easy testing, enhancement, and scaling as requirements evolve.
648
+
This architecture provides a solid foundation for a secure, performant, and maintainable LDAP directory management
649
+
system. The modular design allows for easy testing, enhancement, and scaling as requirements evolve.
Copy file name to clipboardExpand all lines: docs/operations/deployment.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,7 @@
1
1
# Deployment Guide
2
2
3
-
Comprehensive guide for deploying LDAP Manager in production environments, covering various deployment strategies, configurations, and operational best practices.
3
+
Comprehensive guide for deploying LDAP Manager in production environments, covering various deployment strategies,
This deployment guide provides production-ready configurations for various environments. Choose the deployment method that best fits your infrastructure and security requirements.
900
+
This deployment guide provides production-ready configurations for various environments. Choose the deployment method
901
+
that best fits your infrastructure and security requirements.
0 commit comments