Changelog

What changed in NoClick: the SDK, the API and the app, newest first.

NewAppsSDKNext SDK release

Check a deployment before it's live

Deployment.check loads pages of a deployment in a browser and reports each one's status, load time, console errors and a screenshot. Give an app check_paths and a promote is checked where it serves before production switches: a failed check leaves production as it was. Every promote bookmarks the app's databases first, so undoing it restores them too.

checked = preview.check(["/", "/book"]).wait()
for page in checked.paths:
    print(page.path, page.status, page.problem)
Read more in Apps and deployments

Each preview branch gets its own data

An app whose preview_resources is branch gives each preview branch its own copy of the databases, buckets, dicts and queues its code names, made at the branch's first write. Until then its reads reach production, read-only, so a branch that only reads makes nothing. Inside an app, Database.from_name finds the app's own database for the environment it runs in.

Edge or container, decided per commit

An app's runtime is auto by default: each deployment reads the commit it builds and runs where it says. A wrangler config, a JavaScript framework or plain files run on the edge; a Dockerfile, or a server in another language, runs in a container. Set edge or container to pin it.

NewAppsSDKNext SDK release

Sign in with Google, Apple and Microsoft, with nothing to set up

app.sign_in commits sign-in code into an app's repo, with its users in the app's own database. Google, Apple and Microsoft now sign people in through NoClick, so they work as soon as the operation ends, with no client to register at the provider. GitHub still uses your own client.

app = noclick.Project.from_name("booking")
setup = app.sign_in.enable(providers=["email", "google", "apple"]).wait()
print(setup.managed_providers)   # ['google', 'apple']
Read more in Email, payments and sign-in
Improvements and fixes1
  • Taking a published app down now finishes the job before the app leaves your list: the API key is revoked, the files are deleted, and the CDN cache is cleared. If any of that does not complete, the app stays listed so you can try again instead of vanishing while the page is still reachable.

Earlier