dcfc6da604
Adds an assets server to the demo worker, and reworks the existing asset server to use the same code. There are a few simplifications to the code due to some DX improvements working with R2 and caches. I also removed the `HEAD` request from the assets server: i took a look at our logs and it's not actually used at all. This also fixes an issue where users could overwrite the contents of the asset uploads bucket. ### Change type - [x] `other`
81 lines
2.1 KiB
TOML
81 lines
2.1 KiB
TOML
main = "src/worker.ts"
|
|
compatibility_date = "2022-09-22"
|
|
|
|
[dev]
|
|
port = 8788
|
|
|
|
[[analytics_engine_datasets]]
|
|
binding = "MEASURE"
|
|
|
|
#################### Environment names ####################
|
|
# dev should never actually get deployed anywhere
|
|
[env.dev]
|
|
name = 'tldraw-assets-dev'
|
|
|
|
# we don't have a hard-coded name for preview. we instead have to generate it at build time and append it to this file.
|
|
|
|
# staging is the same as a preview on main:
|
|
[env.staging]
|
|
name = "main-tldraw-assets"
|
|
|
|
# production gets the proper name
|
|
[env.production]
|
|
name = "tldraw-assets"
|
|
|
|
#################### Assets R2 bucket ####################
|
|
# in dev, we write to the preview bucket and need a `preview_bucket_name`
|
|
[[env.dev.r2_buckets]]
|
|
binding = 'UPLOADS'
|
|
bucket_name = 'uploads-preview'
|
|
preview_bucket_name = 'uploads-preview'
|
|
|
|
# in preview and staging we write to the preview bucket
|
|
[[env.preview.r2_buckets]]
|
|
binding = 'UPLOADS'
|
|
bucket_name = 'uploads-preview'
|
|
|
|
[[env.staging.r2_buckets]]
|
|
binding = 'UPLOADS'
|
|
bucket_name = 'uploads-preview'
|
|
|
|
# in production, we write to the main bucket
|
|
[[env.production.r2_buckets]]
|
|
binding = "UPLOADS"
|
|
bucket_name = "uploads"
|
|
|
|
#################### Analytics engine ####################
|
|
# analytics engine has the same configuration in all environments:
|
|
[[env.dev.analytics_engine_datasets]]
|
|
binding = "MEASURE"
|
|
|
|
[[env.preview.analytics_engine_datasets]]
|
|
binding = "MEASURE"
|
|
|
|
[[env.staging.analytics_engine_datasets]]
|
|
binding = "MEASURE"
|
|
|
|
[[env.production.analytics_engine_datasets]]
|
|
binding = "MEASURE"
|
|
|
|
#################### Routes ####################
|
|
# in production, we use a custom domain. others get a default *.tldraw.workers.dev domain
|
|
[[env.production.routes]]
|
|
pattern = 'assets.tldraw.xyz'
|
|
custom_domain = true
|
|
zone_name = 'tldraw.xyz'
|
|
|
|
#################### Version metadata ####################
|
|
[version_metadata]
|
|
binding = "CF_VERSION_METADATA"
|
|
|
|
[env.dev.version_metadata]
|
|
binding = "CF_VERSION_METADATA"
|
|
|
|
[env.preview.version_metadata]
|
|
binding = "CF_VERSION_METADATA"
|
|
|
|
[env.staging.version_metadata]
|
|
binding = "CF_VERSION_METADATA"
|
|
|
|
[env.production.version_metadata]
|
|
binding = "CF_VERSION_METADATA"
|