57 Commits
Author SHA1 Message Date
zeekay 79555afb30 chore: strip _pbf_ PocketBase prefixes, unify to _hzf_
- Test fixture DB: rename all _pbf_* field IDs to _hzf_*
- collection_test.go: update hardcoded field IDs to match
- record_crud.go: __pb_create__ → __hzf_create__
- base_backup.go: old_pb_data_ → old_hz_data_
- Remove stale _hz_users_auth_ mapping from tokenreplace
2026-03-01 18:52:30 -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 765b02e6e8 wrap extra client-side ListRule filter with existence check and replaced the map with a slice to minimize test flakiness 2026-03-01 00:09:05 +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
zeekay 86273e0e2c feat: rebrand to Hanzo Base with GeoPoint field support and token management 2026-02-13 22:12:10 -08: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 5ac66022fe disallow client-side filtering and sorting of relations where the collection of the last targeted field has superusers only List/Search API rule 2025-10-23 17:22:47 +03:00
Gani GeorgievandLoic B. 21e881eb35 [#7208] exlude lost+found from the backups
Co-authored-by: Loic B. <[email protected]>
2025-09-28 08:28:28 +03:00
Gani Georgiev c0c89cf12c added more geoPoint field acccess tests 2025-04-02 23:25:42 +03:00
zeekay ef90d0c4c4 Use base 2025-02-10 11:58:49 -06:00
Gani Georgiev d01a5c3522 allow mixing existing file names and new uploaded files 2024-11-19 17:45:15 +02:00
Gani Georgiev a1057cadf9 added migration to normalize the system collection and field ids 2024-11-04 19:03:33 +02:00
Gani Georgiev 202bc1c50b lock the _mfas and _otps delete api rule, fixed flaky tests, fixed jsvm types example 2024-10-24 21:59:00 +03:00
Gani Georgiev 68a6bb9ae7 [#5607] rename aux.db to auxiliary.db 2024-10-06 16:45:57 +03: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 3c1fe741c8 updated jsvm types 2024-01-03 11:08:30 +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 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 d6d4c69c66 logs refactoring 2023-11-26 13:33:17 +02:00
Gani Georgiev 13f8832dce [#3110] normalized view queries with numeric or expression ids 2023-08-11 14:29:18 +03:00
Gani Georgiev 8da1ee3b76 tests types.d.ts in gitignore 2023-07-12 17:31:26 +03:00
Gani Georgiev d03e5844e8 returned OnAfterBootstrap error and added more jsvm tests 2023-07-12 17:12:45 +03:00
Gani Georgiev 32724e3996 [#2551] auto register the initial generated snapshot migration to prevent incorrectly reapplying the snapshot on container restart 2023-05-24 09:23:10 +03:00
Gani Georgiev 09877b2bea renamed private to protected 2023-04-15 13:27:42 +03:00
Gani Georgiev 12731bbb0d [#215] added server-side handlers for serving private files 2023-04-04 20:33:35 +03:00
Gani Georgiev 584e5f6388 [#1939] removed redundant COALESCE normalizations 2023-03-23 19:30:35 +02:00
Gani Georgiev 37baf1636e replaced indirect expand field.Unique with unique index constraint check 2023-03-21 21:38:28 +02:00
Gani Georgiev c3a46a253f minor internal indexes handling adjustments and test 2023-03-21 15:31:20 +02:00
Gani Georgiev b23bbcf25f update automigrate templates to check collection indexes 2023-03-19 16:02:29 +02:00
Gani Georgiev 808b2ce328 added indirect view update by source collection field change 2023-03-06 20:10:18 +02:00
Gani Georgiev e3d4d44402 normalized values on maxSelect change 2023-03-06 15:20:07 +02:00
Gani Georgiev 6d98380376 added view collection type 2023-02-18 19:33:42 +02:00
Gani Georgiev 44d6d5e6a4 [#976] added optional RelationOptions.DisplayFields and refactored the relation picker UI 2023-01-23 21:57:35 +02:00
Gani Georgiev 5a500692a6 filter enhancements 2023-01-07 22:27:11 +02:00
Gani Georgiev 91a86abcfe moved settings under models and added settings dao helpers 2022-11-26 14:42:45 +02:00
Gani Georgiev 335d1ea8cd modify a clone request data when resolving the auth record response 2022-11-17 14:27:54 +02:00
Gani Georgiev c40dd2d332 [#943] exposed apis.EnrichRecord and apis.EnrichRecords 2022-11-17 14:18:11 +02:00
Gani Georgiev 8fa9fd1018 removed DrySubmit form errors wrapping and added more api tests 2022-11-01 00:28:33 +02:00
Gani Georgiev 943c47a441 initial v0.8 pre-release 2022-10-30 10:28:14 +02:00
Gani Georgiev 6476ba88e7 [#586] fixed multiple nested relation expansions with shared base path 2022-09-21 13:34:34 +03:00
Gani Georgiev 092d1787aa [#33] added Twitter OAuth2 provider 2022-09-01 16:46:06 +03:00
Gani Georgiev 945a767c0d [#276] added support for linking external auths by provider id 2022-08-31 13:38:31 +03:00
Gani Georgiev 022ca06cc5 [#335] added Discord OAuth2 provider 2022-08-21 20:04:38 +03:00
Gani Georgiev a52591e069 updated test data.db 2022-08-18 21:05:17 +03:00
Gani Georgiev e6011fb0bc added hideControls setting 2022-08-18 18:45:27 +03:00
Gani Georgiev 8059357448 [#282] added the "real" user ip to the logs 2022-08-18 15:27:45 +03:00