Proto commits in trailbaseio/trailbase

These 60 commits are when the Protocol Buffers files have changed:

Commit:c3d0633
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add an anonymous user cleanup.

The documentation is generated from this commit.

Commit:f6afcfd
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add a proof of concept anonymous sign-in implementation.

Commit:6a52c84
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add a `user_identifier` policy.

Commit:37a7a64
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add a user identifier selector to admin UI.

Commit:27bb9a7
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Rename s/handle/username. They're often used indistinguishably but username is a more private auth-concept.

Commit:a33e2a6
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add `ConflictResolutionStratey::Ignore` back with tests.

Commit:0a03dcd
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Remove leaky Insert `ConflictResolutionStraetgies` blindly wrapped through from SQLite.

Commit:fd7e34a
Author:Sebastian Jeltsch

Make server limits configurable.

Commit:dcb5a76
Author:Sebastian Jeltsch

Add an allowlist for custom auth redirects.

Commit:b296eab
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add GitHub OAuth provider (validated) and fix OAutch callback cookie strictness: i.e. require secure/TLS for HTTPS sites in prod mode. Previously, `secure` was set in dev mode.

Commit:0cc3799
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add OTP auth flows: request code + login. Also add corresponding UIs to both admin UI and `auth-ui` crate.

Commit:cf7f4db
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add two-factor authentication using TOTPs. Also add registration & logins UIs to admin dash and the auth-ui crate. Loosely based on maxirozay@'s https://github.com/trailbaseio/trailbase/pull/212.

Commit:609ec92
Author:Sebastian Jeltsch

Add untested Yandex OAuth provider. #216

Commit:980fd8e
Author:Sebastian Jeltsch

Add Twitch OAuth provider (untested). #215

Commit:84254e2
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Introduce multi-DB support, i.e. Record APIs can be powered by `TABLE`s/`VIEW`s from different DBs. This can help with physical isolation and offer a path forward when locking bottlenecks are encountered. It's still early days, e.g. the UI doesn't yet support creating new DBs. However it allows exploring, creating and altering schemas for existing DBs. For now use the config to register new DBs. Changes: * Config-driven life-cycle management for "extra" DBs, i.e. creation and migration-management. * Completely rewire connection & schema access throughout, now using a ConnectionManager abstraction. * Update SubscriptionManager to track subscriptions across multiple DBs. * Per-DB file management. * Improved error handling. * Basic e2e tests including file handling. * Update UI: * Explorer: show, create and alteration of schemas on non-main DBs. * SQL Editor: allow control over which DBs are attached to the connection. This change is breaking: it affects how migrations are loaded from `<traildepot>/migrations/<db>/` and switches transaction default of batch endpoint to false (cheaper). This change does not introduce a notion of multi-tenancy, i.e. create a per-tenant/user DB on the fly based on templates and corresponding traffic routing.

Commit:c5c6a9b
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

PoC: load extra databases based off config.

Commit:8ac21b0
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Use connection manager for record APIs.

Commit:801d691
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add untested Apple (or "Sign-in with Apple) OAuth provider. I do not like adding untested code unstream, however apple makes it very hard to test, e.g. you cannot have a dev-service that accepts localhost callback addresses... . If you know of a way of testing "Sign-in with Apple" locally, please let me know :pray:.

Commit:d1074a3
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

WIP

Commit:307738f
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

WIP

Commit:1d6209d
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add a new `metadata.Metadata` proto separate from config to keep track of things last binary version.

Commit:bf985be
Author:Sebastian Jeltsch

Add a new `metadata.Metadata` proto separate from config to keep track of things last binary version.

Commit:250a3b9
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

WIP

Commit:3aab2be
Author:Sebastian Jeltsch

Allow configuring SMTP encryption type: None, TLS, STARTTLS. #122

Commit:29d73d9
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add an experimental `/api/transaction/v1/execute` endpoint for mutating (create, update and delete) records across multiple APIs in a single transaction. #124 The endpoint is disabled by default and needs to be enabled in the configuration. Indepdently, the various client libraries do not yet support this new API.

Commit:6a8d172
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Hook up the PoC transaction API.

Commit:5b4d898
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Hook up the PoC transaction API.

Commit:0f5c9c8
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

WIP

Commit:0646431
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Hook up the PoC transaction API.

Commit:ef95ec6
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Hook up the PoC transaction API.

Commit:d2f6804
Author:Sebastian Jeltsch

Hook up the PoC transaction API.

Commit:7a8c31c
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Cleanup: move all Rust code into a `crates/` directory.

Commit:64610b8
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Support custom uri schemes for auth redirects. #100

Commit:d0350b8
Author:Sebastian Jeltsch

Allow setting a per-API hard limit for listing records. #75

Commit:c170a91
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Allow setting password policies from admin UI.

Commit:1888d06
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Allow setting password policies from admin UI.

Commit:c59bea6
Author:Sebastian Jeltsch

Allow setting password policies from admin UI.

Commit:e88ce84
Author:Sebastian Jeltsch

Add an option to disabled password-based registration for new users.

Commit:d7766c4
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Allow RecordApis to explicitly exclude columns.

Commit:294df04
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

First version of RecordApis with explicitly hidden columns.

Commit:c67444e
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

First version of RecordApis with explicitly hidden columns.

Commit:54e42cb
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add a periodic cleanup job to retry failed file deletions.

Commit:d069c03
Author:Sebastian Jeltsch

Minor: docstrings and delayed allocation.

Commit:667b7fb
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add execution duration and remove backup interval setting.

Commit:4bb8ce3
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add basic (cron) jobs page to Admin UI.

Commit:69eeb85
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Add basic time-based cron job scheduler (as opposed to interval based scheduling before) with config, and admin endpoints.

Commit:8b7eb66
Author:Sebastian Jeltsch

Add execution duration and remove backup interval setting.

Commit:dd31b04
Author:Sebastian Jeltsch

Rename all task and cron references to simply job(s).

Commit:8ee9af8
Author:Sebastian Jeltsch

Construct cron jobs from config.

Commit:6c6a621
Author:Sebastian Jeltsch

Add cron config for system jobs. WARN: backups are temporarily disabled. Do not merge.

Commit:c08762b
Author:Sebastian Jeltsch

Add generic OIDC OAuth provider. Not yet configurable through UI. Can currently only be configured via configuration.

Commit:44e3858
Author:Sebastian Jeltsch

Place realtime record subscriptions behind a configuration flag.

Commit:d3ac4fc
Author:Sebastian Jeltsch

Better document config, add conflict resolution test, and make all config APis public to hide some more internal test apis.

Commit:757f0c3
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Expand/inline foreign records in RecordApi read.

Commit:2b1d87a
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Allow expanding the schema of a foreign table into the local one. There are only stubs for configuring the expansion and the row_to_json output builder for the record read/list handlers .

Commit:bd1f0d0
Author:Sebastian Jeltsch

Move proto/ into trailbase-core.

Commit:fb0fe37
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Remove query apis and improve docs in preparation for v3.0. More context in the CHANGELOG.

Commit:e986e73
Author:Sebastian Jeltsch

Wire up S3 storage configuration.

Commit:0baf8d1
Author:Sebastian Jeltsch

Add untested Facebook and Microsoft oauth providers.

Commit:bdb3735
Author:Sebastian Jeltsch
Committer:Sebastian Jeltsch

Squash all commits for a fresh start. This is only to avoid accidentally leaking any secrets from early development especially in the light of short-sha attacks.