Commit Graph

55 Commits

Author SHA1 Message Date
Anso e2da1bf43d docs: refresh screenshots (#219) 2026-03-28 08:42:47 +00:00
Anso 7294d9c6ba docs: refresh screenshots (#218) 2026-03-28 08:27:58 +00:00
Anso f53d00180f docs: refresh screenshots (#215) 2026-03-28 08:01:42 +00:00
Anso a9865f705b docs: refresh screenshots (#212) 2026-03-28 07:40:55 +00:00
Anso 5fecc5f2e7 docs: refresh screenshots (#211) 2026-03-28 07:34:44 +00:00
Anso bd4008f509 feat: SSO & LDAP authentication for Team Pro (#209)
* feat: SSO & LDAP authentication for Team Pro

Add SSO integration allowing Team Pro users to authenticate via LDAP/Active Directory, Google, GitHub, and Okta identity providers. SSO works alongside password authentication with auto-provisioning and role mapping.

- LDAP bind+search authentication with group-based role mapping
- OIDC/OAuth2 flows with PKCE and CSRF protection for Google, GitHub, Okta
- Auto-provisioning: first SSO login creates a Sencho account automatically
- Role mapping via LDAP group membership or OIDC JWT claims
- SSO settings UI in Settings → SSO with per-provider config and test connection
- SSO login buttons on login page with LDAP toggle
- Environment variable seeding for infrastructure-as-code workflows
- Secrets encrypted at rest via CryptoService (AES-256-GCM)
- Seat limit enforcement during auto-provisioning
- Full documentation: feature docs, quickstart guides, env var reference

* fix: resolve ESLint errors in SSO feature

- Remove unnecessary escape characters in regex character classes
- Remove unused `issuer` variable from OIDC callback handler
- Fix setState-in-effect lint error in Login.tsx by using useState initializer
- Suppress set-state-in-effect for SSOSection fetch pattern (matches existing codebase convention)
2026-03-28 03:30:01 -04:00
Anso b429097fa2 docs: refresh screenshots (#208) 2026-03-28 05:13:39 +00:00
Anso 45721f3594 docs: refresh screenshots (#207) 2026-03-28 05:06:04 +00:00
Anso 8bcd605ccb docs: refresh screenshots (#204) 2026-03-28 04:04:30 +00:00
Anso d5120729fe docs: refresh screenshots (#203) 2026-03-28 03:54:04 +00:00
Anso d3828e885d feat(settings): replace static license CTA with dynamic upgrade cards (#201)
Community users now see Personal Pro and Team Pro cards with feature
highlights and direct Lemon Squeezy checkout links. Personal Pro users
see only the Team Pro upgrade option. Trial and Team Pro users see no
upgrade cards since they already have full access.
2026-03-27 23:49:11 -04:00
Anso 0cc198f86d docs: refresh screenshots (#200) 2026-03-27 22:49:25 +00:00
Anso 07f221423b docs: refresh screenshots (#198) 2026-03-27 22:13:05 +00:00
Anso ffabfd1c39 docs: audit and refresh documentation with updated screenshots (#197)
Update 11 doc pages with accurate content and capture 14 fresh
screenshots. Remove JWT_SECRET from configuration (auto-generated),
fix editor container actions, add missing Settings sections, update
Features Overview, and add remote alerts documentation.
2026-03-27 18:08:31 -04:00
Anso 064b9be861 docs: refresh screenshots (#196) 2026-03-27 21:15:44 +00:00
Anso 7eee15d925 docs: refresh screenshots (#192) 2026-03-27 05:21:18 +00:00
Anso 2c1fa69ee8 docs: refresh screenshots (#190) 2026-03-27 02:26:26 +00:00
Anso 1243158e8a docs: refresh screenshots (#188) 2026-03-27 02:08:31 +00:00
Anso 2f2ba19a7a docs: refresh screenshots (#187) 2026-03-27 02:03:01 +00:00
Anso 269ea6fe53 docs: refresh screenshots (#184) 2026-03-26 17:19:35 +00:00
Anso 8ad9981dc2 docs: refresh screenshots (#183) 2026-03-26 16:56:06 +00:00
Anso 72670ffb42 docs: refresh screenshots (#180) 2026-03-26 13:37:16 +00:00
Anso dab7403d99 docs: refresh screenshots (#178) 2026-03-26 13:30:13 +00:00
Anso a1450eefb8 docs: refresh screenshots (#176) 2026-03-26 03:14:32 +00:00
Anso 6e2a6cf0c0 docs: refresh screenshots (#173) 2026-03-26 02:18:31 +00:00
Anso c625814e13 docs: refresh screenshots (#172) 2026-03-26 01:57:16 +00:00
Anso ee6c98bf74 docs: refresh screenshots (#171) 2026-03-25 23:52:38 +00:00
Anso f80190d926 feat(auth): redesign Login and Setup pages with split-panel branding layout (#168)
* feat(auth): redesign Login and Setup pages with split-panel branding layout

Replace plain Card-based Login and Setup forms with a professional
split-panel layout: always-dark branding panel (dot grid texture, logo,
tagline, cyan accent line) on the left, theme-aware form on the right.
Mobile collapses to single column with compact logo header.

- Add optional admin email field on Setup for license recovery
- Backend accepts and stores admin_email in setup endpoint
- Fix data-stacks-loaded attribute forwarding (wrap in div, use string values)

* docs: add license-settings and profile-dropdown screenshots

* fix(docs): correct logo paths from .svg to .png

* fix(deps): resolve picomatch high-severity vulnerability
2026-03-25 19:47:48 -04:00
Anso beabcb49b5 docs: refresh screenshots (#156) 2026-03-25 15:01:46 +00:00
Anso 44fd374dc2 docs: refresh screenshots (#155) 2026-03-25 14:32:16 +00:00
Anso a5d66f6c43 docs: refresh screenshots (#152) 2026-03-25 13:15:34 +00:00
Anso 4b1812af1d docs: refresh screenshots (#151) 2026-03-25 13:08:23 +00:00
Anso a5bc161c68 docs: refresh screenshots (#148) 2026-03-25 12:44:49 +00:00
Anso 8c9635322a docs: refresh screenshots (#147) 2026-03-25 12:36:51 +00:00
Anso 19d8daf0f1 docs: refresh screenshots (#144) 2026-03-25 06:40:47 +00:00
Anso 4b48473a4f docs: refresh screenshots (#143) 2026-03-25 06:35:00 +00:00
Anso 21350945ff docs: refresh screenshots (#140) 2026-03-25 05:52:33 +00:00
Anso ac48bab9bf docs: refresh screenshots (#137) 2026-03-25 05:19:37 +00:00
Anso 60032564b3 docs: refresh screenshots (#136) 2026-03-25 05:07:57 +00:00
Anso cb5b25de8d docs: refresh screenshots (#133) 2026-03-25 04:44:41 +00:00
Anso c867d71139 docs: refresh screenshots (#131) 2026-03-25 04:07:54 +00:00
Anso 68a1dbe671 chore(deps): upgrade major dependencies (ESLint 10, recharts 3, TS 6, Vite 8) (#130)
* chore(deps): upgrade ESLint 9 → 10 with plugin compatibility fixes

- eslint: ^9 → ^10.0.0 (backend + frontend)
- @eslint/js: ^9 → ^10.0.0 (backend + frontend)
- eslint-plugin-react-refresh: ^0.4.24 → ^0.5.2 (ESM, config factory API)
- Update frontend eslint.config.js: destructured import for react-refresh,
  call configs.vite() as factory function (0.5 API change)
- Downgrade new ESLint 10 rules (no-useless-assignment, preserve-caught-error)
  to warnings for existing code patterns
- eslint-plugin-react-hooks stays at 7.0.1 (stable) with --legacy-peer-deps
  until a stable release adds ESLint 10 peer support

* chore(deps): upgrade recharts 2.x to 3.8 with chart.tsx type fixes

recharts 3.x moved Tooltip/Legend props to context-based API.
Updated chart.tsx to use explicit prop interfaces with internal
recharts type imports (LegendPayload, TooltipPayload, TooltipFormatter).

* chore(deps): upgrade TypeScript 5.9 to 6.0

- Remove deprecated baseUrl from frontend tsconfig (paths works standalone in TS 6)
- Add react-is dependency required by recharts 3.x at build time
- Backend and frontend both compile and lint cleanly

* chore(deps): upgrade Vite 7.3 to 8.0 and @vitejs/plugin-react to 6.0

Vite 8 replaces Rollup+esbuild with Rolldown, significantly improving
build speed (~2s vs ~18s). No config changes required.

* fix(ci): add .npmrc with legacy-peer-deps for CI and Docker builds

typescript-eslint@8.x requires typescript <6.0.0 and
eslint-plugin-react-hooks@7.0.1 requires eslint <=9. Until upstream
packages release compatible versions, legacy-peer-deps is needed.

* docs: add logo assets and re-ignore CLAUDE.md

* fix(ci): copy .npmrc into prod-deps Docker stage

The prod-deps stage also runs npm ci with backend/package.json but was
missing the .npmrc needed to bypass peer dep conflicts.
2026-03-25 00:03:08 -04:00
Anso e39cd386b2 docs: refresh screenshots (#129) 2026-03-25 03:13:15 +00:00
Anso 29c32e5ffb docs: refresh screenshots (#128) 2026-03-25 03:04:05 +00:00
Anso d8d7d31241 docs: refresh screenshots (#125) 2026-03-25 02:39:28 +00:00
AnsoCode c56b244f58 docs: refresh screenshots 2026-03-24 23:08:45 +00:00
AnsoCode 2c13d7c37d docs: refresh screenshots 2026-03-24 22:02:46 +00:00
Anso 83dd6541cb docs: refresh screenshots (#81) 2026-03-24 11:34:41 -04:00
Anso 6338122253 docs: refresh screenshots (#79) 2026-03-24 09:19:21 -04:00
Anso aecb311cbb docs: refresh screenshots (#77) 2026-03-24 08:07:37 -04:00