150 Commits
Author SHA1 Message Date
zeekay d02a70442d migrate: pocketbase/dbx → hanzoai/dbx v1.12.0
Drop-in replacement — same API, same package name (dbx).
75 Go files updated. Zero pocketbase references in imports.
2026-03-02 13:54:55 -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 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 9feb83cdad applied lint typo fixes 2026-03-02 22:31:27 +02:00
zeekay 6759ac456c Rebrand PocketBase imports to Hanzo Base across all Go files
Replace github.com/pocketbase/pocketbase with github.com/hanzoai/base
in 106 Go source files. Keep pocketbase/dbx and pocketbase/tygoja as-is
(upstream dependencies). Add compiled binary to .gitignore. Include
realtime DX design document inspired by Convex patterns.
2026-02-27 09:43:39 -08: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 e2cbe88aa1 use TEST_IP for the test auth alert email 2025-11-22 09:36:20 +02:00
Gani Georgiev cf6a73d956 [#7314] added ALERT_INFO placeholder to the auth alert mail template 2025-11-10 17:56:36 +02:00
Gani Georgiev cfcf4adea8 [#6689] updated to automatically routes raw write SQL statements to the nonconcurrent db pool 2025-05-02 10:27:41 +03:00
Gani Georgiev 1eb4103faa [#6607] allowed manually changing the password from the create/update hooks 2025-04-05 13:36:31 +03:00
zeekay ef90d0c4c4 Use base 2025-02-10 11:58:49 -06:00
Gani Georgiev 2b60b61da9 upgraded to jwt/v5 2025-01-05 11:18:00 +02:00
Gani Georgiev eee5a40d65 added record.SetRandomPassword() helper and updated oauth2 autogenerated password handling 2024-12-26 13:24:03 +02:00
Gani Georgiev fdee3e425d [#6073] added poc implementation for the dry submit removal 2024-12-11 18:43:48 +02:00
Gani Georgiev 76ebd6b747 added more descriptive test OTP id and failure log message 2024-12-02 13:46:29 +02:00
Gani Georgiev 55862a4534 updated checkOldPassword validator 2024-11-23 10:28:31 +02:00
Gani Georgiev 1d4fa61617 merge v0.23.0-rc changes 2024-09-29 21:09:46 +03:00
Gani Georgiev a4dcdee8c8 updated the rules when linking OAuth2 by email 2024-06-18 16:26:32 +03:00
Gani Georgiev 4583e3509b added back relation filter reference support 2024-02-19 16:55:34 +02:00
Gani Georgiev 026b5e274a fixed RecordUpsert.RemoveFiles godoc example 2024-02-02 09:21:41 +02:00
Gani Georgiev 6496091cb3 fixed typos and some linter suggestions 2024-01-23 20:56:14 +02:00
Gani Georgiev 765680ac33 added support for loading a serialized json payload as part of multipart/form-data request 2024-01-14 22:20:46 +02:00
Gani Georgiev 0bcc6c527e [#4066] mark user as verified on confirm password reset 2024-01-13 17:52:41 +02:00
Gani Georgiev a8777b327a [#4068] fixed the json field query comparisons to work correctly with plain JSON values 2024-01-03 10:43:46 +02:00
Gani Georgiev 5fce1f8a82 updated some of the tests to use t.Parallel 2024-01-03 04:30:20 +02:00
Gani Georgiev 36444e47f8 docs fixes commits from develop 2023-12-29 21:25:32 +02:00
Gani Georgiev c249991ff9 [#3790] added MaxSize json field option 2023-12-09 22:30:37 +02:00
Gani Georgiev 790f1e4980 added onlyVerified auth collection option 2023-12-06 11:57:04 +02:00
Gani Georgiev 8256c4cd18 added support for comments in the API rules and filter expressions 2023-12-02 16:37:04 +02:00
Gani Georgiev bbd856fcdc [#3700] allow a single OAuth2 user to be used for authentication in multiple auth collection 2023-12-02 12:43:22 +02:00
Gani Georgiev 49e2283faf added OAuth2 displayName and pkce options 2023-11-29 20:19:54 +02:00
Gani Georgiev d6d4c69c66 logs refactoring 2023-11-26 13:33:17 +02:00
Gani Georgiev 3014b77b79 synced with master 2023-11-11 12:50:20 +02:00
Gani Georgiev 6389e06ccc [#3697] allowed hyphens in usernames 2023-11-11 12:19:33 +02:00
Gani Georgiev e6cbf5c60d synced with master 2023-11-10 15:18:14 +02:00
Gani Georgiev 41838aaf77 [#3735] fixed text field min/max validators to properly count multi-byte characters 2023-11-10 14:58:00 +02:00
Gani Georgiev 4427f1057a synced with master 2023-11-06 11:42:59 +02:00
Gani Georgievandsergeypdev ac8ade5c0e [#3689] relaxed the OAuth2 redirect url validation to allow any string value
Co-authored-by: sergeypdev <[email protected]>
2023-11-06 11:33:10 +02:00
Gani Georgiev 1818be0ab2 updated relation field validation message 2023-10-21 15:52:19 +03:00
Gani Georgiev d09661f9d9 renamed record upsert local requestInfo to requestData to distinguish better from models.RequestInfo 2023-10-08 22:52:14 +03:00
Gani Georgiev ac9b40a6f8 added more descriptive internal password reset error message 2023-09-15 20:45:28 +03:00
Gani Georgiev 6a602168d3 use singular NoDecimal option name 2023-08-29 18:41:20 +03:00
Gani Georgiev c601566d66 [#3113] added NoDecimal number field option 2023-08-29 18:35:57 +03:00
Gani Georgiev e7e2b9d1a1 [#2599] added option to upload a backup file from the Admin UI 2023-08-28 20:06:48 +03:00
Gani Georgiev 415d655d80 added SchemaField.Presentable field 2023-08-21 12:58:18 +03:00
Gani Georgiev a9fba4e10d updated LastVerificationSentAt and LastResetSentAt fill sequence 2023-08-17 14:03:11 +03:00
Gani Georgiev 13f8832dce [#3110] normalized view queries with numeric or expression ids 2023-08-11 14:29:18 +03:00
Gani Georgiev 0040e613c5 [#3090] fixed relation to view error message 2023-08-08 12:41:51 +03:00
Gani Georgiev 62276366f9 updated ui/dist and some lint warnings 2023-07-30 13:40:22 +03:00
Gani Georgiev 5ec04e4e82 added action arg to the before Dao hook to allow skipping the default persist behavior 2023-07-29 19:52:36 +03:00