Logicstarter operator console

Provider settings

This page now behaves like an operator workspace instead of a raw form. You can review runtime sources, validate provider input, save DB-backed settings, and export merged values into the runtime env before testing login.

Visible categories

5

Email, SMS, storage, authentication, and billing are all exposed here.

Configured fields

19

Non-empty provider values currently resolved into the runtime snapshot.

DB-backed fields

29

Fields currently resolved from persisted settings instead of env or defaults.

Env-backed fields

9

Fields currently taking precedence from explicit runtime env values.

Provider runtime overview

Live operator readiness

This summary is sourced from the active runtime APIs instead of only merged form values.

Loading runtime providers...
Runtime-ready modules
0
Needs attention
0
Tracked modules
0

Runtime target

unknown

Database profile

unknown

Cloudflare compatibility

Blocked by Node-first surfaces

Cloudflare deployment guide

CF-first runtime checklist

Use this checklist when you switch Logicstarter from a Node runtime to a Cloudflare Worker target. The overview above reflects the current runtime state, while this card highlights the deployment assumptions that must change for Workers.

Target to apply

cloudflare (planned)

Preferred CF database profile

unknown → prefer d1 for Worker-native deployments

Runtime env export

Use deployment bindings or secrets instead of .env runtime export

Current CF status

CF blockers still exist in the tracked provider overview
Keep STORAGE_PROVIDER on r2 or another remote object store before moving Worker uploads into the mainline path.
Billing is now gated behind the node runtime target, but Stripe checkout and webhook handling still need a Worker-safe path before Cloudflare can become the primary runtime.
Avoid relying on .env.runtime export in a Worker deployment; move final values into Cloudflare bindings or deployment secrets.
All tracked modules are currently runtime-ready.

Assets

Storage

Configure local, S3, or R2 storage before enabling shared uploads and generated asset flows.

env
0
db
13
default
0

Storage guidance

Cloudflare R2 runtime checklist

Use this mode for Cloudflare-first object storage while keeping the Logicstarter storage contract aligned with the shared provider model.

Confirm the R2 account ID, bucket, and access keys match the active production bucket.
Verify STORAGE_PUBLIC_BASE_URL points at the public file domain when public object delivery is expected.
Use the runtime card to confirm signed PUT support is enabled before validating direct uploads.

Storage runtime status

Active storage runtime

Runtime health

Local filesystem storage active

Provider

unknown

Public delivery mode

Local uploads route

Direct upload readiness

Signed PUT unavailable in this runtime

Public base URL

/uploads

Local path

Not applicable

Bucket target

Not configured

R2 account

Not applicable

Resolved endpoint

Not applicable

Signed GET support

Unavailable

Signed PUT support

Unavailable

Upload support

Unavailable

Delete support

Unavailable

Upload policy

Not available

Max upload bytes

Not available

Accept

Not available

Allowed content types

Not available

Storage API quick reference

Operator endpoints

Runtime status

GET https://starter.logicm8.com/api/storage/runtime

Signed URL

POST https://starter.logicm8.com/api/storage/signed-url

Upload file

POST https://starter.logicm8.com/api/storage/upload

Delete file

POST https://starter.logicm8.com/api/storage/delete

Public files

GET https://starter.logicm8.com/uploads/...

Runtime curl

curl -s https://starter.logicm8.com/api/storage/runtime

Signed URL curl

curl -s -X POST https://starter.logicm8.com/api/storage/signed-url -H 'content-type: application/json' --data '{"key":"homepage/example.txt","method":"GET"}'

Direct upload prep curl

curl -s -X POST https://starter.logicm8.com/api/storage/signed-url -H 'content-type: application/json' --data '{"key":"homepage/example.txt","method":"PUT","contentType":"text/plain"}'

Delete curl

curl -s -X POST https://starter.logicm8.com/api/storage/delete -H 'content-type: application/json' --data '{"key":"homepage/example.txt"}'
Signed URL contract: `POST /api/storage/signed-url` requires a signed-in Better Auth session and accepts `GET` or `PUT` in the request body.
Provider support: `local` supports signed `GET` only. `s3` and `r2` support signed `GET` and signed `PUT` for direct uploads.
Direct upload guidance: Use `POST /api/storage/signed-url` with {"method":"PUT"} only when the active provider is `s3` or `r2`.
Auth contract: `POST /api/storage/upload` and `POST /api/storage/delete` require a signed-in Better Auth session and reject anonymous requests with `401`.
Method contract: `GET /api/storage/upload` and `GET /api/storage/delete` return `405 Method Not Allowed`.

storage controls

Runtime snapshot

Full env export

This export reflects the full merged provider and authentication configuration currently resolved by Logicstarter.

EMAIL_PROVIDER=resend
[email protected]
EMAIL_FROM_NAME=LogicStarter
RESEND_API_KEY=re_Q8mcKyJ7_Jd6VUrajNeohSgu1gdXrQkij
SMTP_HOST=
SMTP_PORT=
[email protected]
SMTP_PASS=
SES_REGION=
SES_ACCESS_KEY_ID=
SES_SECRET_ACCESS_KEY=
SMS_PROVIDER=console
VONAGE_API_KEY=
VONAGE_API_SECRET=
VONAGE_FROM=
AMAZON_SNS_REGION=
AMAZON_SNS_ACCESS_KEY_ID=
AMAZON_SNS_SECRET_ACCESS_KEY=
AMAZON_SNS_SENDER_ID=
STORAGE_PROVIDER=r2
STORAGE_LOCAL_BASE_PATH=./uploads
STORAGE_PUBLIC_BASE_URL=https://file.logicm8.com
S3_REGION=auto
S3_BUCKET=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_ENDPOINT=
S3_FORCE_PATH_STYLE=false
R2_ACCOUNT_ID=7cb5d7a44fde3f702b4757dbf6d4218d
R2_BUCKET=logicsign
R2_ACCESS_KEY_ID=bdf5ee69d1225dd169676dc2e6f450c2
R2_SECRET_ACCESS_KEY=d7eea9c6b0452785cdcc2ff8dbb233a2aafb118dba9804e8ba5a04f9c17bed18
AUTH_GOOGLE_ENABLED=true
AUTH_GOOGLE_CLIENT_ID=120010228220-22q89ll1ag87odnqgb2a4dj3e90a1rn9.apps.googleusercontent.com
AUTH_GOOGLE_CLIENT_SECRET=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
AUTH_GITHUB_ENABLED=false
AUTH_GITHUB_CLIENT_ID=
AUTH_GITHUB_CLIENT_SECRET=
STRIPE_SECRET_KEY=
STRIPE_PUBLISHABLE_KEY=
STRIPE_WEBHOOK_SECRET=

Focused export

Category export preview

This export is focused on Storage. Use it when you only want one category while testing.

STORAGE_PROVIDER=r2
STORAGE_LOCAL_BASE_PATH=./uploads
STORAGE_PUBLIC_BASE_URL=https://file.logicm8.com
S3_REGION=auto
S3_BUCKET=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_ENDPOINT=
S3_FORCE_PATH_STYLE=false
R2_ACCOUNT_ID=7cb5d7a44fde3f702b4757dbf6d4218d
R2_BUCKET=logicsign
R2_ACCESS_KEY_ID=bdf5ee69d1225dd169676dc2e6f450c2
R2_SECRET_ACCESS_KEY=d7eea9c6b0452785cdcc2ff8dbb233a2aafb118dba9804e8ba5a04f9c17bed18