backd 0.9.9
backd: ^0.9.9 copied to clipboard
The pure-Dart client for backd: sign-in and sessions, collections and the query language, files, function jobs, realtime live views and generated realm types. Works in Flutter apps and standalone Dart [...]
0.9.9 #
No changes; released on the same version as the backd server.
0.9.8 #
No changes; released on the same version as the backd server.
0.9.7 #
No changes; released on the same version as the backd server.
0.9.6 #
parseSize(text, {family, allowBytes})andformatBytes(bytes, family)read and print sizes with the server's grammar (512KiB,1.5GB), tested against the same vectors asbackd-jsand the server. Needs no new server feature; goes withbackdv0.9.6.
0.9.5 #
- Public files:
publicUrl(file, version)gives the permanent address of a file in a field withpublic: true(and of a ready version), andfileUrl(..., file:)answers it without a request to the server for such a file.FileLink.expiresAtis now nullable: a public file's link never expires, so code that reads it must handlenull. The generated types gainpublic,key_nameand the versionurl. Needs a backd server with public files (0.9.5).
0.9.4 #
auth.updatePassword(email, password, newPassword, {code, method}): changes the password signed out with the current one (a password that expired for the user alone, or one the user wants to replace). An account with a second factor also givescode; every session of the user ends and none starts. A password expired for the whole realm is refused withpassword_expired. Needs a backd server withPOST /_auth/password/update.
0.9.3 #
- Breaking, with a backd server that scopes sessions (34.2):
Collection.inOrg()and theorgoption ofcreate, andTypedCollection.inOrg, are gone: a session works in the one organization it was opened for, so there is none to name (inTeamneeds noinOrgbefore it).orgs.list(),orgs.previewInvitationandorgs.acceptInvitationare gone too: useorgs.signedIn(),auth.previewInvitation(token, org:)and a login with theinvitation:. Asession_unscopedanswer expires the session likeunauthenticated.orgs.updatetakessessionMaxAge. - Signing in to an organization:
BackdClient(org: 'acme-corp')binds the client to an organization (an id, or the slug people know) andlogin,signup,magicLink.request,requestPasswordResetandsignInWithgo to/_auth/orgs/{org}/…, so the session is scoped to it (Session.org,auth.current,Me.org,auth.org()); a wrong password, a stranger and an unknown organization fail alike. An invitation is used as part of the sign-in (invitation:),auth.previewInvitationreads it before,auth.options()lists what the sign-in page can offer,auth.signUpWithOrgstarts a company andauth.findOrgsemails an address its companies.client.org(id)gives one client per organization with a token of its own, andclient.orgs.signedIn()lists them.TokenStoragegainsslot(name)andslots()(breaking for custom storages: return null fromslotto keep one token).orgs.createkeeps the session of the organization it makes. Needs a backd server with the organization sign-in routes.
0.9.2 #
-
Your own data:
client.accountasks for the export of the user's personal data (requestExport, with a fresh proof), follows it (exports,export,waitForExport) and saves it (downloadExport: a signed link and itsbytes(), or the zip itself when the realm proxies its files). Needs a backd server withcompliance.export. See Personal data export. -
Live app configuration:
client.config.live([paths])follows the realm's app configuration over realtime.config.changesfires within the realtime delay instead of at the nextcache_ttl;config.errorsreports a realm without configuration or without realtime. Needs a backd server with theconfigrealtime subscription. See Live updates.
0.9.1 #
- Versions now follow the
backdrelease train.package:backd0.9.1 goes withbackdv0.9.1 andbackd-js0.9.1, asbackd-jshas done since 0.8.2. The API is the same as in 0.0.5; the number is the only change. - Update the constraint. A caret on a
0.0.xversion allows nothing newer, sobackd: ^0.0.5will not pick this release: usebackd: ^0.9.1(dart pub add backd). From here abackdX.Y matches the server's X.Y, and patch releases are fixes. - The Flutter Shelf demo moved out of the package, from
example/toclients/dart-examplesin the repository. The package no longer needs the Flutter SDK to resolve, test or publish. - Works with everything
backdv0.9.1 adds on the server side: encrypted fields read asnullwith_meta.redactedfor a caller their reveal rule refuses (already typed since 0.0.5), andPasswordExpiredErrorandFieldEncryptedErrorfor the new server errors. The Dart client has no admin API, so the newadmin.encryption, key and breach-response commands stay inbackd-js, the CLI and the admin UI.
0.0.5 #
- New errors:
PasswordExpiredError(password_expired, withresetEmailQueued) andFieldEncryptedError(field_encrypted), matchingbackd-js. fillBucketsandbucketKeyfor aggregations over date buckets.Collection.deleteFileandCollection.downloadFile, which the documentation already described.- Generated types:
Meta.redacted, the encrypted fields a caller may not see. - The example app builds with
file_picker11 (FilePicker.pickFilesis static), which fixesdart analyze --fatal-warningsfor the package.
0.0.4 #
-
Upgraded library and dependency versions across the package and the
example/app. -
CHANGELOG now covers every published release.## 0.0.3
-
Feature modules landed on top of the
0.0.1scaffold:auth(sessions, OAuth, consents),data(collections and the query language),files,functions(jobs),realtime(live views),orgs,push, typed realm clients and tokenstorage.
0.0.2 #
- Publication tests: pub.dev packaging dry-runs,
.pubignorefixes and CI release plumbing. No API changes.
0.0.1 #
- First development release: the package scaffold —
BackdClientoptions, the injectable transport, the request pipeline (JSON and raw bodies, query encoding, retries of429/503on safe requests, theX-Backd-Typesfingerprint headers), theBackdExceptionhierarchy,TokenStorageand theRevalidationCache. Feature modules (auth, data, files, realtime, …) land in following releases.