zeekay
dee0d76af8
fix: superuser token fallback in external-only auth mode + scrub PB references
...
- loadAuthToken now falls back to local validation for _superusers tokens
when JWKS validation fails in external-only mode. Non-superuser local
tokens are still rejected. Fixes seeding with IAM enabled.
- Scrub PocketBase references from docs, SDK, and UI config
2026-03-02 15:28:53 -07:00
zeekay
6e44ac3159
Add IAM OIDC login for Base admin -- all auth through IAM
...
Implements OIDC authorization code flow with PKCE for the superuser
login page (/_/). When BASE_OIDC_ISSUER is set, the email/password
form is hidden and replaced with a single "Sign in" button that
redirects through the OIDC flow. The callback stores the auth token
in localStorage and redirects to the admin UI.
Routes:
GET /_/auth/oidc/redirect - start OIDC flow (state+PKCE cookies)
GET /_/auth/oidc/callback - exchange code, find/create superuser
GET /_/api/oidc/config - reports whether OIDC is enabled
Env vars: BASE_OIDC_ISSUER, BASE_OIDC_CLIENT_ID,
BASE_OIDC_CLIENT_SECRET, BASE_OIDC_AUTO_CREATE_SUPERUSER
2026-03-02 15:01:53 -07:00
zeekay
c91e8d0d5e
Title uses APP_NAME only — 'Base' is fallback when no name set
2026-03-02 14:20:27 -07:00
zeekay
603f5c16e4
Remove hardcoded Hanzo Analytics and branding from admin UI
2026-03-02 14:17:21 -07:00
zeekay
a28b3db6cc
fix: vendor-neutral branding — remove all hardcoded "Hanzo Base"
...
Replace "Hanzo Base" fallbacks with generic "Base" in all Svelte UI
components. When $appName is set (e.g. "<tenant>"), it displays
that instead. Help text uses "the application" rather than a brand.
Files: App.svelte, FullPage.svelte, PageWrapper.svelte, index.html,
PageBackups, PageStorage, PageMail, TrustedProxyAccordion,
CollectionRulesTab, LarkOptions, PageExportCollections
2026-03-01 17:20:08 -07:00
zeekay
fc36d43451
chore: migrate ui from npm to pnpm
2026-03-02 04:10:36 -07:00
zeekay
4712db18f2
fix(ui): rebrand admin dashboard — Base → Hanzo Base
2026-03-01 17:11:49 -07:00
zeekay
a9231b85fe
chore: update Go and UI dependencies
...
Go: goja, fatih/color, fsnotify, grpc, protobuf, sqlite, temporal, x/* libs
UI: npm update (3 packages)
2026-03-02 10:30:35 -07:00
zeekay
7c8b6bd5a4
fix(ui): resolve @hanzo/base/compat for Docker builds
...
The Vite alias 'base' -> '@hanzo/base/compat' failed in Docker because
the file:../sdk/base-js link can't resolve when only ui/ is copied into
the build context. Since @hanzo/base/compat is just a re-export of the
pocketbase package, alias 'base' directly to 'pocketbase' and add it as
a direct devDependency, removing the file: link.
2026-03-02 01:22:56 -07:00
zeekay
7da62dfb4f
feat(sdk): publish @hanzo/base v0.2.0, swap UI dependency
...
- Add /compat export path re-exporting PocketBase client as drop-in
- Add pocketbase as dependency (compat layer)
- Add RealtimeService.unsubscribe() method
- Build: core, compat, react, crdt entry points
- UI: swap pocketbase → @hanzo/base/compat, builds clean
- Published to npm as @hanzo/[email protected]
2026-03-02 10:49:54 -07:00
zeekay
7448c6cea5
fix: add root redirect to /_/ admin UI
2026-03-02 01:43:39 -07:00
zeekay
c3fa775af1
fix: black text on ALL filled buttons (primary, info, secondary, expanded)
2026-03-02 01:30:06 -07:00
zeekay
6d1d67d362
fix: nuclear CSS override — white bg black text on primary button, kill ::before
2026-03-02 01:23:29 -07:00
zeekay
a134001cd6
fix: add primary to btn variations map — black text on white CTA
2026-03-02 01:12:52 -07:00
zeekay
fff0bca4f4
fix: CSP allows Google Fonts + analytics, fresh remixicon font, black text on CTA
2026-03-02 00:56:03 -07:00
zeekay
93cd4cff10
fix: add global remixicon font-family rule for icon rendering
2026-03-02 00:37:07 -07:00
zeekay
3fe483ac1b
refactor: remove _hz_ prefix from collection IDs, add brand-neutral logo config
...
Remove all _hz_ prefixes from collection IDs, internal markers, and test
fixtures. The default users collection is now _users_auth_ instead of
_hz_users_auth_. Internal SQL parser tokens renamed from __hz_join__/__hz_discard__
to __join__/__discard__. Backup prefix changed from @auto_hz_backup_ to
@auto_backup_. Test database updated with correct collection IDs and indexes.
JWT tokens in test files regenerated with new collection IDs.
Add LogoURL field to MetaConfig so the admin UI logo is configurable via
app settings instead of hardcoded. FullPage.svelte and App.svelte sidebar
now read logo and app name from the settings store, falling back to
defaults when not configured.
2026-03-01 23:48:36 -07:00
zeekay
4e8b046870
fix: dev pill button with animated auto-login, rename to 'Login as Superuser'
2026-03-01 22:41:07 -07:00
zeekay
51b91d4c9a
fix: primary button class, dev fill credentials, remove broken icon, fix installer button
2026-03-01 22:35:53 -07:00
zeekay
8dd5b61fff
fix: Geist fonts, font imports, monochrome buttons
2026-03-01 22:28:46 -07:00
zeekay
9b8fa2c1ea
fix: monochrome black/white theme — #000 bg, white buttons, desaturated, matches hanzo.ai
2026-03-01 22:26:21 -07:00
zeekay
482cdc9280
fix: monochrome white logo, single 'Base' text, clean title
2026-03-01 22:06:44 -07:00
zeekay
ee7255323b
fix: replace remaining pb references with base in ApiClient.js
2026-03-01 21:59:17 -07:00
zeekay
cf0252a28e
Merge remote-tracking branch 'upstream/master'
...
# Conflicts:
# apis/record_auth_with_otp.go
# core/base_backup.go
# go.mod
# go.sum
# plugins/jsvm/internal/types/generated/types.d.ts
# tools/router/rereadable_read_closer_test.go
# ui/dist/assets/AuthMethodsDocs-C2aSYmNv.js
# ui/dist/assets/AuthRefreshDocs-BapWJLRK.js
# ui/dist/assets/AuthWithOAuth2Docs-Ck_pnbL8.js
# ui/dist/assets/AuthWithOtpDocs-D8uWq_C5.js
# ui/dist/assets/AuthWithPasswordDocs-BQyMhAeO.js
# ui/dist/assets/BatchApiDocs-rvUuWLZE.js
# ui/dist/assets/CodeEditor-DrMyw8z_.js
# ui/dist/assets/CreateApiDocs-XWzcGuMB.js
# ui/dist/assets/DeleteApiDocs-CScE0aw3.js
# ui/dist/assets/EmailChangeDocs-CxOtrB4s.js
# ui/dist/assets/FieldsQueryParam-BzNUQIb5.js
# ui/dist/assets/FilterAutocompleteInput-Dm2G2coC.js
# ui/dist/assets/Leaflet-DyumpnOc.js
# ui/dist/assets/ListApiDocs-CdOzMZnr.js
# ui/dist/assets/PageInstaller-vIXdffAJ.js
# ui/dist/assets/PageOAuth2RedirectFailure-ClpyaW_B.js
# ui/dist/assets/PageOAuth2RedirectSuccess-BLZml1eK.js
# ui/dist/assets/PageRecordConfirmEmailChange-Cm3O2YD1.js
# ui/dist/assets/PageRecordConfirmPasswordReset-D0XfuL45.js
# ui/dist/assets/PageRecordConfirmVerification-CYyNYH_v.js
# ui/dist/assets/PageSuperuserConfirmPasswordReset-BvlQ0_9t.js
# ui/dist/assets/PageSuperuserRequestPasswordReset-gUPMclJZ.js
# ui/dist/assets/PasswordResetDocs-DMF1vqE0.js
# ui/dist/assets/RealtimeApiDocs-CNVij_C2.js
# ui/dist/assets/UpdateApiDocs-CwQ3ZhFQ.js
# ui/dist/assets/VerificationDocs-DUeWWjrS.js
# ui/dist/assets/ViewApiDocs-gocWxbTE.js
# ui/dist/assets/index-CWGqJiyp.js
# ui/dist/index.html
2026-03-01 19:27:21 -07:00
Gani Georgiev
7aed9585b8
updated npm deps and ui/dist
2026-03-02 18:52:51 +02:00
Gani Georgiev
cb8b2f6301
updated ui/dist
2026-03-02 17:33:04 +02:00
Gani Georgiev
9feb83cdad
applied lint typo fixes
2026-03-02 22:31:27 +02:00
zeekay
987ae1358d
fix: rebrand UI with real Hanzo logo, title, favicons — zero PocketBase in HTML
2026-03-01 19:26:33 -07:00
zeekay
8c88b7225f
fix: use --dash-* token vars (not --admin-*)
2026-03-02 14:42:50 -07:00
zeekay
0f8ab327c3
feat: adopt shared admin design tokens from @hanzo/ui
...
Import _hanzo-tokens.scss and wire _vars.scss to use shared CSS custom
properties for colors, surfaces, and sidebar width.
2026-03-02 14:37:46 -07:00
zeekay
7195369ba2
fix: remove all hz_/pb_ prefixes, use clean names (public, data, migrations, hooks)
2026-03-02 14:24:33 -07:00
zeekay
38aba0db8e
rebrand: PocketBase admin UI to Hanzo Base
...
- Replace all PocketBase/pocketbase text with Hanzo Base/hanzo-base
- Update pb_data/pb_migrations/pb_hooks references to data/migrations/hooks
- Replace logo and favicons with Hanzo H mark
- Update SCSS color variables to dark theme (bg #0A0A0A, primary #3B82F6)
- Rename TinyMCE skin directory from pocketbase/ to base/
- Add vite resolve alias so `from "base"` resolves to pocketbase npm package
- Update Dockerfile directory paths from pb_* to clean names
- Rebuild ui/dist with all changes
2026-03-02 14:20:20 -07:00
zeekay
abaf14c649
feat: add Hanzo analytics tracking to base UI
2026-03-02 01:45:05 -07:00
zeekay
4b4d307330
Merge remote-tracking branch 'upstream/master'
...
# Conflicts:
# .github/SECURITY.md
# plugins/jsvm/internal/types/generated/types.d.ts
# ui/dist/assets/AuthMethodsDocs-Dpd1KLEi.js
# ui/dist/assets/AuthRefreshDocs-KmFqCz1h.js
# ui/dist/assets/AuthWithOAuth2Docs-CyJfh606.js
# ui/dist/assets/AuthWithOtpDocs-CuAOVtzX.js
# ui/dist/assets/AuthWithPasswordDocs-CmHb4Jjn.js
# ui/dist/assets/BatchApiDocs-LUXI6B6N.js
# ui/dist/assets/DeleteApiDocs-KmnbmZ-6.js
# ui/dist/assets/EmailChangeDocs-DhDDRSkd.js
# ui/dist/assets/FieldsQueryParam-C7N80dkz.js
# ui/dist/assets/ListApiDocs-BZTCC2fq.js
# ui/dist/assets/PageInstaller-Cdywf0VY.js
# ui/dist/assets/PageOAuth2RedirectFailure-9trAN4R5.js
# ui/dist/assets/PageOAuth2RedirectSuccess-BKErE1i9.js
# ui/dist/assets/PageRecordConfirmEmailChange-B83GxdXn.js
# ui/dist/assets/PageRecordConfirmPasswordReset-72PfbDaZ.js
# ui/dist/assets/PageRecordConfirmVerification-Cudgspq-.js
# ui/dist/assets/PageSuperuserConfirmPasswordReset-BvmdsmYF.js
# ui/dist/assets/PageSuperuserRequestPasswordReset-B8e2B4ZR.js
# ui/dist/assets/PasswordResetDocs-Do427Hpy.js
# ui/dist/assets/RealtimeApiDocs-DydjyGiu.js
# ui/dist/assets/VerificationDocs-CTnb2Ar3.js
# ui/dist/assets/ViewApiDocs-D9o91Lhw.js
2026-02-27 08:57:15 -08:00
Gani Georgiev
9883b843ee
updated ui/dist
2026-02-27 08:50:49 +02:00
Gani Georgiev
b2334f8570
bumped npm deps
2026-02-27 08:27:57 +02:00
zeekay
4b229fae5b
Merge remote-tracking branch 'upstream/master'
...
# Conflicts:
# core/record_field_resolver_multi_match.go
# ui/dist/assets/AuthMethodsDocs-ChShXLwE.js
# ui/dist/assets/AuthMethodsDocs-Cqvl0T_l.js
# ui/dist/assets/AuthMethodsDocs-DIqhS7qY.js
# ui/dist/assets/AuthRefreshDocs-CHakkNnn.js
# ui/dist/assets/AuthRefreshDocs-DLb1qree.js
# ui/dist/assets/AuthRefreshDocs-DXgrlMdk.js
# ui/dist/assets/AuthWithOAuth2Docs-Bl8VRxNv.js
# ui/dist/assets/AuthWithOAuth2Docs-DVBOel22.js
# ui/dist/assets/AuthWithOAuth2Docs-I213UiJ7.js
# ui/dist/assets/AuthWithOtpDocs-B9tL6gIN.js
# ui/dist/assets/AuthWithOtpDocs-C2PPm9-Z.js
# ui/dist/assets/AuthWithOtpDocs-qEMoMG3D.js
# ui/dist/assets/AuthWithPasswordDocs-B8JWDbPL.js
# ui/dist/assets/AuthWithPasswordDocs-BTHeYJwE.js
# ui/dist/assets/AuthWithPasswordDocs-D9rqgLpO.js
# ui/dist/assets/BatchApiDocs-BV4PYYXn.js
# ui/dist/assets/BatchApiDocs-DXa997am.js
# ui/dist/assets/BatchApiDocs-Di2Qe2dV.js
# ui/dist/assets/DeleteApiDocs-C3IINRwz.js
# ui/dist/assets/DeleteApiDocs-LfmVp4Uf.js
# ui/dist/assets/DeleteApiDocs-SU4XdGhJ.js
# ui/dist/assets/EmailChangeDocs-COx1USU5.js
# ui/dist/assets/EmailChangeDocs-D-qNHT_P.js
# ui/dist/assets/EmailChangeDocs-DpfXIE_V.js
# ui/dist/assets/FieldsQueryParam-BYe9ZK-G.js
# ui/dist/assets/FieldsQueryParam-L8vpHeF4.js
# ui/dist/assets/FieldsQueryParam-z0dGQ6uY.js
# ui/dist/assets/ListApiDocs-BCTT-AOz.js
# ui/dist/assets/ListApiDocs-C0_GwI7k.js
# ui/dist/assets/ListApiDocs-T9_aO-pW.js
# ui/dist/assets/PageInstaller-B22bivaN.js
# ui/dist/assets/PageInstaller-C0BBhyBx.js
# ui/dist/assets/PageInstaller-IYSwJhZW.js
# ui/dist/assets/PageOAuth2RedirectFailure-BjbpqlFj.js
# ui/dist/assets/PageOAuth2RedirectFailure-COyNF79R.js
# ui/dist/assets/PageOAuth2RedirectFailure-DPmGG9zv.js
# ui/dist/assets/PageOAuth2RedirectSuccess-6cMXLFAX.js
# ui/dist/assets/PageOAuth2RedirectSuccess-CdkCarGH.js
# ui/dist/assets/PageOAuth2RedirectSuccess-DSEIHeQL.js
# ui/dist/assets/PageRecordConfirmEmailChange-BYW-6ASg.js
# ui/dist/assets/PageRecordConfirmEmailChange-Bm1CIYvq.js
# ui/dist/assets/PageRecordConfirmEmailChange-BpaqOT4u.js
# ui/dist/assets/PageRecordConfirmPasswordReset--wx_u2lI.js
# ui/dist/assets/PageRecordConfirmPasswordReset-CoeY2Z_C.js
# ui/dist/assets/PageRecordConfirmPasswordReset-Ptya5bfe.js
# ui/dist/assets/PageRecordConfirmVerification-6xjF3T0O.js
# ui/dist/assets/PageRecordConfirmVerification-C1UTIIJh.js
# ui/dist/assets/PageRecordConfirmVerification-C4LixXvA.js
# ui/dist/assets/PageSuperuserConfirmPasswordReset-19z2IFg4.js
# ui/dist/assets/PageSuperuserConfirmPasswordReset-DwNi0ugQ.js
# ui/dist/assets/PageSuperuserConfirmPasswordReset-SMnDTRNi.js
# ui/dist/assets/PageSuperuserRequestPasswordReset-BpDW217f.js
# ui/dist/assets/PageSuperuserRequestPasswordReset-DK63qE6z.js
# ui/dist/assets/PageSuperuserRequestPasswordReset-bG02qLIM.js
# ui/dist/assets/PasswordResetDocs-CE67mLC0.js
# ui/dist/assets/PasswordResetDocs-CHAK0vma.js
# ui/dist/assets/PasswordResetDocs-Dap-N4rx.js
# ui/dist/assets/RealtimeApiDocs-BooTSQCb.js
# ui/dist/assets/RealtimeApiDocs-CoHmYVEx.js
# ui/dist/assets/RealtimeApiDocs-D7ds3fHt.js
# ui/dist/assets/VerificationDocs-B42AIoCQ.js
# ui/dist/assets/VerificationDocs-BS7b11zH.js
# ui/dist/assets/VerificationDocs-ZhkdFVIl.js
# ui/dist/assets/ViewApiDocs-BXmRLHZ1.js
# ui/dist/assets/ViewApiDocs-DM5JJQjh.js
# ui/dist/assets/ViewApiDocs-DRpxcuJR.js
# ui/public/fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2
# ui/public/fonts/ubuntu-mono/ubuntu-mono-v17-cyrillic_latin-700.woff2
2026-02-22 01:17:16 -08:00
Gani Georgiev
dcef84b0a9
bumped app version
2026-02-18 20:00:31 +02:00
Gani Georgiev
1469e0e898
[ #7532 ] added compositionend listener
2026-02-17 18:20:07 +02:00
Gani Georgiev
9dd8676774
[ #7532 ] pause collection and fields name normalization while in IME mode
2026-02-17 17:29:38 +02:00
Gani Georgiev
b2adf4018f
bumped app version
2026-02-16 21:08:13 +02:00
Gani Georgiev
00d399e33f
bumped app version
2026-02-13 17:21:34 +02:00
Gani Georgiev
defd4965ee
bumped app version
2026-02-01 09:40:10 +02:00
Gani Georgiev
4f2b2deb86
updated thumb style and title for non-previewable files
2026-01-23 00:34:58 +02:00
Gani Georgiev
9a0c9d538d
regenerated jsvm types and bumped app version
2026-01-18 18:53:03 +02:00
Gani Georgiev
262c30e071
updated JSVM types and bumped app version
2026-01-15 22:24:07 +02:00
Gani Georgiev
6137ac599f
updated ui version
2026-01-13 18:56:23 +02:00
Gani Georgiev
535cfd5b76
normalized multiple to single field confirmation detection
2026-01-06 18:33:44 +02:00
Gani Georgiev
ef68d26a42
normalized relations picker maxSelect value
2026-01-06 18:19:01 +02:00
Gani Georgiev
82ef049e5b
updated ui/dist
2025-12-19 19:25:08 +02:00