@libreflare/worker-cli
v0.2.6
Published
Libreflare managed Worker CLI
Readme
Libreflare Worker CLI
CLI and library for Libreflare managed Worker workflows. It currently generates
Wrangler config from libreflare.config.yaml.
CLI
libreflare-worker config generateBy default the command reads libreflare.config.yaml and wrangler.jsonc from
the current directory, writes wrangler.generated.jsonc, and writes
.wrangler/deploy/config.json so Wrangler uses the generated config.
By default runtime config is written to
src/libreflare-runtime-config.generated.json. This avoids Cloudflare's
per-variable size limit for projects with many routes. Pass
--runtime-config vars to write the legacy LIBREFLARE_CONFIG Worker variable
instead. The JSON target still writes Wrangler routes and required secret
bindings to wrangler.generated.jsonc.
Before Libreflare creates libreflare.config.yaml, the command points Wrangler
at the base wrangler.jsonc. In the default JSON mode, it also writes a
generated JSON stub so the Worker can be bundled before managed config exists.
Managed Worker Config
version: 2
zoneName: example.com
logging:
apiUrl: https://logs.example.com/insert/jsonline?_stream_fields=stream
auth: true
routes:
- prefix: /lf/pages
domains:
- example.com
- www.example.com
logging:
sourceKey: pages
sourceKeyRules:
- expression: cf.verified_bot_category eq "AI Crawler"
sourceKey: pages-ai-crawler
varyByMonth: true
rule: starts_with(http.request.uri.path, "/wiki/")
- prefix: /lf/api
domains:
- api.example.com
logging:
sourceKey: api
rule: starts_with(http.request.uri.path, "/api/")zoneName is the Cloudflare zone where Wrangler should create Worker routes.
When routes[].domains is present, it must contain one or more plain hostnames,
the zone apex, *.zoneName, concrete zone subdomains, or explicit Cloudflare
for SaaS custom hostnames attached to the zone. The CLI generates one Wrangler
route per route domain and prefix. Omit routes[].domains when the Worker
repository owns Wrangler route config for that route. Runtime route matching is
path-prefix based, so route prefixes must be unique within the config.
routes[].logging.sourceKey is the required default logging stream key.
Optional sourceKeyRules are evaluated in order inside the Worker before the
origin fetch; the first match wins. Rule expressions use native Cloudflare Rules
syntax, do not support rule fragments, and cannot reference Cloudflare lists
such as $known_crawlers. Worker-visible bot fields such as cf.client.bot and
cf.verified_bot_category are allowed.
For unmanaged logging, omit the top-level logging block and omit route
logging blocks. The CLI still generates Wrangler routes from routes that include
domains, and it still writes route/rule metadata to the selected runtime
config target without logging fields. Logging variables and logging auth
bindings stay owned by the Worker repository:
version: 2
zoneName: example.com
routes:
- prefix: /lf/custom
domains:
- example.com
rule: starts_with(http.request.uri.path, "/custom/")