- Added client-safe viewer manifest summaries for store families, resource action availability, route exposure, registered operation availability, and query modes without exposing source paths, state paths, request bodies, response bodies, auth headers, cookies, connection details, or server operation templates.
- Reworked the built-in local viewer into a database-console shell with connection, data, query, schema, operations, logs, and settings workspaces driven by the manifest's safe capability summaries.
- Updated the database dashboard example copy and UI labels so example records are clearly separated from the built-in viewer contract.
- Added Deno workflow support for
async-db init, including generateddeno.jsontasks, Deno-only project detection, Deno quick-start docs, a Deno basic example, and a release-gated Deno smoke test for npm package compatibility.
- Added Git-backed resource sources with reusable Git remotes,
gitFiles,gitFile, andgitCollectionFileschema helpers, safe source metadata in generated manifests, and Git snapshot sync for JSON, JSONC, frontmatter, MD, MDX, and text files. - Added
sqliteMirror()for Git-backed resources with receipt-mode defaults, write-through outbox support, anddb._.gitcontrol hooks for pending work, flushing, receipts, and reconciliation. - Added GitHub content and Tina-style CMS examples covering default JSON mirrors and SQLite-backed read-heavy mirrors.
- Added
eventResource()as a small helper for append-only event resources that fills conventional event fields while delegating writes tocollection.append(record).
- Added typed resource-property access on
openDb<DbTypes>()handles, callable control/resource collision handling, anddb._as the explicit control namespace. - Added generated
DbCollectionKeysmaps so collection identity fields type package API key arguments.
- Added normalized resource identity metadata across schema builders, generated TypeScript, schema manifests, viewer manifests, REST metadata, GraphQL SDL, API surface ledgers, SQL adapters, and inspectors.
- Added compound object-key runtime support across package APIs, REST
__keyroutes, GraphQL resource key inputs, WAL replay, audit payloads, and SQLite/Postgres existing-table adapters. - Added append-only log policy handling and
field.bytes(...)metadata with encoded payload validation.
- Delegated JSON-backed identity behavior through the standalone
@async/jsonengine while preserving the@async/db/jsoncompatibility export. - Replaced the GitHub release tarball dependency on
@async/jsonwith the npm package dependency@async/json@^0.2.0; GitHub Packages remain preview/mirror install surfaces, not the default dependency source.
- Added the standalone
@async/jsonpackage dependency as the JSON engine boundary while keeping@async/db/jsonas a compatibility export. - Added RedisJSON adapter exports from
@async/db/redisthrough@async/json/redis.
- Shared collection query helpers with
@async/jsonand documented the responsibility split between the JSON engine and@async/dbplatform layer.
- Added generated
@async/pipelinerelease, preview, snapshot, GitHub Pages, and API surface workflows for the Async org release standard. - Added
@async/api-contractAPI surface checks withapi-contract.jsonandAPI_SURFACE.mdwired into release verification. - Added
scripts/release-doctor.mjsand the dispatchablerelease-doctorpipeline job: verifies that the git tag, npm version, and GitHub Release agree for the current version, repairs what is provably safe (push or fetch the tag, publish from the tagged commit, create the tag when the npm tarball shasum matches a pack of HEAD, create the missing GitHub Release), and--supersedebumps the patch version and marks the unreconcilable release in this changelog.
- Standardized docs, examples, and README task commands on pnpm and
pnpm run <pipeline-name>. - Replaced standalone release/docs workflows with the generated
async-pipeline.yml; the unrelated Fallow workflow remains separate.
- Added
durability: 'versioned'JSON state snapshots with pruning, AES-256-GCM encryption at rest with transparent plaintext upgrade, and automatic crash recovery that quarantines corrupt state files and restores the newest snapshot. - Added
durability: 'wal'write-ahead-log durability withfsync: 'always' | 'everysec' | 'no'policies, debounced checkpoints, and hash-bound log generations so hand-edited files supersede stale logs. - Added lifecycle verbs:
async-db status,promote,reseed,backup, andrestore, backed by a machine-manageddb.lifecycle.jsoncthat pinsseedHashso sync stops auto-reseeding promoted state. - Added conditional reads with ETags and
If-None-Match304 responses across collection, document, and REST reads, plus a runtime write audit trail with actor and change metadata. - Added a
server.authorizehook, a health endpoint with its own exposure policy, and viewer event hub hardening that limits subscribers and drops broken clients. - Added content collections with external watch roots (
files()globs outside the data folder hot-reload underserve) and anasync-db init --template contentscaffold. - Added
read: 'mdx'with a dependency-free component scan: records gaincomponents,imports, andexportsfields, and afiles(..., { components: [...] })allow-list fails sync withCONTENT_COMPONENT_NOT_ALLOWEDwhen a doc uses an unregistered JSX tag. - Added doctor findings for backup recency, lifecycle phase, mock production settings, and disallowed MDX component usage.
- Made watcher tests event-driven and example launchers replace stale package self-reference symlinks when a checkout moves between machines.
- Added the static docs website build, refreshed landing page copy, and ordered examples browser for the published docs site.
- Added
async-db initfor scaffolding new Async DB projects, plus a corrected CLI--versionoutput path. - Added wrapper-first Postgres integration inspection with source-only and optional read-only catalog modes, redacted env-based connection handling, Postgres adoption paths, and explicit import planning.
- Added
@async/db/postgres/compatfor optional low-level Postgres driver adapters and dry-run import helpers. - Added
openPostgresDb({ tables })for mapping Async DB resources to existing Postgres tables, including read-only mappings, column mappings, compound object keys, and append-only event tables. - Added review-first schema declaration migration with
async-db schema migrate inspect/generate, schema migration report types, JSONC/mixed draft generation, and source detection for Prisma, Drizzle, SQL, JSON Schema/OpenAPI, TypeBox, and common validator declarations. - Added
field.derived(...)and serializablederivedmetadata for database- or externally-owned read-only fields that Async DB documents but does not compute.
- Made generated GraphQL and Falcor endpoints opt-in by default in the local server; REST resource routes remain enabled by default, while apps can enable GraphQL or Falcor explicitly through server configuration.
- Updated docs, examples, and starter guidance to prefer
.jsconfig and schema files in ESM packages while keeping existing.mjsdiscovery support. - Reworked README and docs-site onboarding around JSON files in
db/, generated schemas/types, local REST/GraphQL routes, and the local data explorer.
- Suppressed the optional
node:sqliteexperimental warning while Async DB loads SQLite support, keepingasync-db integrate inspectstdout/stderr stable on Node.js 22.
- Added store-neutral collection query helpers with
find,count, andaggregate, plus append-onlywritePolicyresources andcollection.append(record). - Added
@async/db/sqlite/compatfor low-level SQLite driver adapters, deterministic compound-key ids, legacy SQLite import plans, and explicit import-once migration helpers without new mandatory dependencies. - Added SQLite import planning through
async-db integrate inspect --target-stateand dry-run importer generation throughasync-db integrate generate importer. - Added
pnpm run api-surface:checkto fail when watched public-surface files change without anAPI_SURFACE.mdupdate.
- Expanded existing-table SQLite integration so apps can keep app-owned SQLite files, injected handles, read-only/no-migrate mode, table and column mappings, read models, and compound object-key helpers.
- Updated SQLite integration guidance to keep existing SQLite as the default write source of truth, recommend wrapper/read-model/table-backed/app-owned paths, and keep ORM support advisory.
- Documented minimal collection queries, wrapper-first SQLite adoption, explicit import mode, and the
API_SURFACE.mdplusdocs/package-api.mdupdate rule for agents.
- Added the SQLite integration inspector for inventorying SQLite-backed projects and recommending Async DB migration paths.
- Refactored config loading internals into named path resolution, module loading, inline option, output mirroring, and absolute path normalization helpers without changing the public package API.
- Added a Fallow PR review gate that installs Fallow in CI without adding a package dependency, while ignoring examples for the analysis workflow.
- Removed unused internal source wrappers and tightened duplicate internal export names surfaced by Fallow.
- Added REST bulk resource aliases, standalone batch routes, and shared JSON endpoint plumbing for request batching.
- Added Falcor JSONGraph endpoint support through
/model.jsonand scoped__dbroutes. - Added the public
createDbRuntime()lifecycle API with shared reload/watch/runtime middleware support. - Added a public
createMemoryFs()helper andopenDb({ fs })support so callers can run against a custom or in-memory file system before choosing where to persist generated state. - Added document path support for JSON Pointer strings, array paths, and bare top-level fields across runtime documents, SQLite documents, and generated Hono GraphQL document facades.
- Hardened document path access against prototype-sensitive segments such as
__proto__,prototype, andconstructor.
- Made the tag release workflow retry-safe by skipping npm publish when the package version already exists, while still creating or updating the GitHub release asset.
- Updated release documentation to match the built
dist/package allowlist, gated Release Please behavior, and manual/tag release flow.
- Added first-class
@async/db/jsonproduction helpers, diagnostics, and JSON store examples for file-suitable app resources. - Added logical fork, branch, snapshot, routing, and migration primitives for tenant isolation, preview branches, debug copies, and store graduation workflows.
- Added production JSON guidance and examples for feature flags, settings, CMS publishing, free-plan upgrades, debug snapshots, policy sandboxes, prompt experiments, and mixed JSON/database resources.
- Replaced the unused legacy fixture-folder fork model with explicit fork and branch lifecycle APIs.
- Moved fork and branch classification into user-owned metadata instead of a separate
kindfield. - Tightened lifecycle behavior so scoped fork/branch access requires created registry entries.
- Fixed CI and release workflows so they install pinned pnpm dependencies before running package checks.
First public release of @async/db.
- Data-first JSON, JSONC, and CSV fixture loading from
db/, with schema inference, generated TypeScript types, and a writable.db/stateruntime mirror. async-dbCLI commands for sync, type generation, schema inspection, schema validation, doctor checks, local serving, viewer manifests, operations contracts, and Hono/SQLite starter generation.- Package APIs for opening databases, loading schema metadata, validating schema-backed writes, serving dependency-free REST and GraphQL routes, and calling local APIs through the HTTP client.
- Optional Vite, Hono, SQLite, Postgres, KV, and Redis-style integration surfaces without mandatory runtime dependencies.
- Built-in local viewer at
/__db, viewer manifests, REST format negotiation, request tracing, CSV import, registered operations, and opt-in browser cache support. - Runnable examples for data-first fixtures, schema-backed fixtures, REST clients, relations, schema manifests, schema UI, Hono auth, content collections, computed fields, CSV, diagnostics, and Standard Schema validators.
- Release automation for future version bumps, changelog updates, GitHub releases, and npm publishing.
@async/dbis local development and test infrastructure. Do not exposeasync-db serveas a production database or auth boundary.- The first npm package is published under the scoped package name
@async/db; the CLI binary remainsasync-db.
Dates are commit dates from the git history. Changelog-only maintenance commits are omitted. Commit links point at the canonical GitHub repository: https://github.com/async-framework/async-db.
- 2026-05-07 - Created the dependency-light Node.js ESM package with JSON/JSONC fixture loading, schema helpers, runtime mirror sync, generated TypeScript types, a CLI, and the basic example project. Commit 4ee9630.
- 2026-05-07 - Added CI, Dependabot, repository agent guidance, and the package check script. Commit 1d9600c.
- 2026-05-07 - Clarified the basic README instructions for
db/users.json. Commit 836aade. - 2026-05-20 - Rebranded the project from
jsondbto@async/db, including the package name,async-dbCLI,db.config.mjs,.dbruntime output,/__dbdev-tool routes, generated file names, docs, examples, tests, and public API wording. Commit 6b8b37b.
- 2026-05-07 - Added the REST runtime, GraphQL runtime, GraphQL parser, HTTP handlers, and protocol tests. Commit d24dd9a.
- 2026-05-07 - Added structured
DbErrorhandling for clearer API and server failures. Commit f25659e. - 2026-05-07 - Added schema-backed validation, request body limits, and safer batching behavior. Commit af60a9c.
- 2026-05-11 - Renamed the package-facing API to
dband added an embeddable request handler for mounting db into other servers. Commit 0b7f9d5. - 2026-05-14 - Added pluggable runtimes, runtime write events, an HTTP feature registry, and a
/__db/logserver-sent event stream. Commit 69337fa. - 2026-05-14 - Added the
sourceruntime for reading and writing source-backed JSON fixtures, with source metadata hydration and dot-folder ignoring. Commit 80ecfff. - 2026-05-14 - Avoided redundant disk writes by skipping unchanged output, preserving generated metadata, and centralizing source metadata updates. Commits 9ec39b1 and c14e799.
- 2026-05-14 - Added
DbCollection.exists()to the package API and SQLite adapter. Commit 9586d5f. - 2026-05-19 - Replaced runtime mode config with store-based resource binding, named stores, custom store wrappers, per-store write queues,
sqliteStore(),Db.close(), legacy config migration diagnostics, store doctor checks, and source writeback through thesourceFilestore. Commit 4f77e1e. - 2026-05-19 - Added
server.apiBasefor scoping built-in dev-tool routes while preserving root REST resources and/graphql, including client, Vite, mock, batch path, and fork route support. Commit caa9f99. - 2026-05-20 - Added
rest.enabledandgraphql.enabledtoggles so apps can disable generated REST resource routes, REST batching, or the GraphQL endpoint while keeping viewer, schema, manifest, import, events, and other dev-tool routes available, with structured disabled-feature errors and discovery/manifest capability reporting. Commit 4698795. - 2026-05-20 - Added registered operations with stable hashes, manifest and ref output,
async-db operations build,buildOperationManifest(),hashOperation(),client.operation()/client.query(),POST /__db/operations/:ref,operations.enabled, route exposure policies, and REST/GraphQL operation execution by name or hash. Commits b6b0d83 and 639dfa1. - 2026-05-20 - Added opt-in request tracing with
x-async-db-request-id, route/resource/operation metadata, safe query-key capture, phase timings, slow-request labeling, runtime log events, concise console output, and standalone, Vite, and Hono trace overrides without recording request bodies, response bodies, cookies, or authorization headers. Commit ed9b643. - 2026-05-20 - Added a deterministic operations contract workflow with
async-db operations contract,--outand--checksupport, first-class server registry versus client-safe refs handling, runtime operation maps, Hono operation mounting, and updated operation tooling/docs for prototype-to-production REST flows. Commit d73312d. - 2026-05-20 - Required a resolvable operations setup before
server.expose.rest: 'registered-only'can start, with early server failures,OPERATIONS_STRICT_MODE_WITHOUT_OPERATIONSdiagnostics, doctor guidance, robust empty/missing operation source handling, and exported registry/source-loading helpers. Commit 53cc09a. - 2026-05-24 - Added the schema-first package API with
loadDbSchema({ from }), schema validators, direct field resolver binding through delegated resolver context, metadata-only schema loading, andopenDb({ schema })runtime reuse. Commit 209d2a0.
- 2026-05-07 - Added the HTTP client, automatic and direct batching, example projects, built-in viewer, and mock behavior tests. Commit d8373b1.
- 2026-05-07 - Added live reload, generated collection ids, source diagnostics, and viewer updates for broken source files. Commit 7e4cce7.
- 2026-05-14 - Expanded the example catalog with metadata, richer READMEs, relations, REST client, and schema-manifest examples, plus a metadata-driven examples index. Commit 0b4d31e.
- 2026-05-14 - Added the Hono auth example showing bearer-token auth, permission checks, lifecycle hooks, and write normalization. Commit bbad836.
- 2026-05-19 - Added the schema-ui example with committed schema metadata, SSR admin rendering, per-example serve hooks, and the reusable example launcher. Commit b633a28.
- 2026-05-19 - Added viewer manifests,
db viewer manifest,viewerManifestOutFile,server.viewerLinks, manifest rendering, and committed viewer manifest sync output. Commit 9ffa49b. - 2026-05-20 - Added an opt-in normalized client cache with manifest indexing, REST and GraphQL read dedupe, read/write/event policies, watch subscriptions, storage snapshots, EventSource invalidation/refetch handling, Vite virtual-client cache configuration, and
createIndexedDbCacheStorage()for persisted browser cache snapshots. Commit 7556eef. - 2026-05-24 - Added dependency-free content collections and computed-fields examples covering folder-backed MDX records, config-owned static stores, generated types, app-owned previews, and multiple computed resolver patterns. Commit 209d2a0.
- 2026-05-07 - Added CSV fixture loading, CSV examples, viewer CSV import, and CSV-backed sync support. Commit 6312e0b.
- 2026-05-11 - Added CSV array coercion for schema-backed CSV fixtures, including semicolon-delimited and JSON array string cells. Commit 28bf08b.
- 2026-05-07 - Added
.schema.jsonsupport and synthetic seed generation for schema-first resources. Commit 03a5da9. - 2026-05-11 - Added nullable fields, datetime fields, schema builder updates, and generated type support for those field shapes. Commit 28bf08b.
- 2026-05-11 - Added field constraints and unique-field validation across sync, package API writes, REST writes, GraphQL mutations, and schema validation. Commit d38aa6b.
- 2026-05-14 - Added recursive nested fixture discovery, basename-derived resource names, recursive source watching, and nested schema-manifest context. Commit 27b3125.
- 2026-05-14 - Added the custom source readers pipeline for user-defined formats, built-in reader normalization, source hashes, and structured reader diagnostics. Commit 53604b9.
- 2026-05-14 - Added
async-db schema infer, doctor guidance for adding or removing schemas, and discriminated object variants in inference, validation, manifests, and generated TypeScript types. Commits 9586d5f and 0d9bf62. - 2026-05-14 - Added
async-db schema bundle/unbundlefor moving inline seeds between schema and data fixtures, with mixed-mode warnings, safe output handling, overwrite controls, empty-seed support, and--cwd-relative output paths. Commits f57a9cc, c0cb2fa, e9618ec, and 353c861. - 2026-05-20 - Limited schema defaults to creates and safe additive runtime hydration; runtime updates, patches, document puts, SQLite writes, and generated Hono SQLite writes now preserve omitted fields instead of backfilling defaults. Commit 4698795.
- 2026-05-20 - Added
field.computed(...)read-only schema fields with resolver andresolveManyfanout support, manifest/type metadata, REST and GraphQL selection-time projection, and validation that rejects computed field writes through package APIs, REST, GraphQL, and registered operations. Commit b6b0d83. - 2026-05-24 - Added the root
db.schema.mjsregistry, folderindex.schema.mjscollection markers,files(pattern, { read })content sources, aggregateschema bundle --all/unbundle --all, interactive target prompts, schema-only root bundling with seed splitting, source-glob rebasing, inline resolver wrapper generation, and structured bundle/unbundle diagnostics. Commit 209d2a0.
- 2026-05-11 - Added configurable fixture directories with
dbDir, while preservingsourceDircompatibility. Commit d5371c8. - 2026-05-11 - Added
defineConfig, config typings, the example config file, and expanded README configuration guidance. Commit 15f559b. - 2026-05-20 - Added unified
outputsconfiguration for generated state, generated types, committed types, schema manifests, viewer manifests, operation registries, operation refs, and Hono starter output, replacing scattered committed-output options across docs, examples, fork config, and tests. Commit d73312d.
- 2026-05-11 - Added REST response shaping with
select,offset, andlimit; added explicit depth-1 to-one relation metadata andexpandsupport. Commit d9f7c70. - 2026-05-14 - Added REST response formats, fixture-based resource naming strategies, custom resource naming hooks, and duplicate-resource diagnostics. Commit 0c95b52.
- 2026-05-14 - Added canonical resource alias resolution and collision diagnostics across CLI commands, runtime APIs, REST, SQLite, generated starters, schema loading, and the viewer. Commit b7089b1.
- 2026-05-19 - Added a REST format registry with JSON/HTML/Markdown renderers, Accept negotiation, manifest-aware formatting, and richer viewer JSON rendering. Commit 9ffa49b.
- 2026-05-20 - Documented and updated examples for fixture-like
/db/*.jsonREST routes, includingdb/<fixture>.jsontoGET /db/<fixture>.jsonmapping,?id=guidance, extensionless route semantics, and rest-client demo paths. Commit dca5ba0.
- 2026-05-11 - Added GraphQL
operationNameselection, named fragments, inline fragments,@include,@skip,__typename, and minimal__schema/__typeintrospection. Commit f196625. - 2026-05-20 - Added shared required-
idargument validation for single-record queries and update/delete mutations, plus expanded public GraphQL result and error typings. Commit 4698795. - 2026-05-20 - Added registered GraphQL operation templates and server execution by name or hash while respecting
graphql.enabled, with clientquery()support for GraphQL template objects. Commit 639dfa1.
- 2026-05-11 - Added
async-db doctor/async-db check, JSON output, strict mode, fixture diagnostics, relation suggestions, and fork health checks. Commit 22cb816. - 2026-05-11 - Documented the
doctorCLI health check behavior in the product spec. Commit bf29064. - 2026-05-11 - Added the shape-layer MVP with the Vite plugin, REST shaping, relation support, and doctor work. Commit bea5776.
- 2026-05-11 - Added the dependency-light Vite dev-server plugin, scoped
/__dbroutes, optional root REST routes, and thevirtual:db/clientmodule. Commit d9f7c70. - 2026-05-14 - Documented Vite watch behavior, generated artifact ignores, and guidance for avoiding unnecessary reloads while keeping runtime imports visible. Commit 8e0c2a3.
- 2026-05-11 - Added configured database forks with separate fixture folders, fork-scoped runtime state, fork-aware clients, fork-scoped HTTP routes, Vite helpers, and diagnostics. Commit 1873c67.
- 2026-05-11 - Added committed schema manifest generation for model-driven admin/CMS UIs, including
schemaOutFile,async-db schema manifest, manifest render helpers, field UI hints, and customization hooks. Commit 7a2e819. - 2026-05-11 - Landed the schema manifest work through PR #5. Commit 11a2d8d.
- 2026-05-14 - Added
customizeResource,mergeManifest-based field and resource customization, resource naming support, and non-serializable customization diagnostics. Commit 0c95b52.
- 2026-05-07 - Added the Hono and SQLite starter generator, optional Hono integration, optional SQLite adapter, generation CLI, and related tests. Commit 4e4770e.
- 2026-05-14 - Reused the opened Hono database promise in
dbContextso middleware calls share one opened database instance. Commit 434c7b6. - 2026-05-14 - Added
registerDbRoutesfor Hono with route prefixes, resource include/exclude controls, method filters, global hooks, per-resource hooks, and short-circuiting. Commits 9586d5f and 0d9bf62. - 2026-05-14 - Added Hono REST lifecycle hooks with
beforeRequestand write-onlybeforeWritehandling, including hook ordering and short-circuit support. Commit bbad836.
- 2026-05-20 - Added optional Postgres, generic KV, and Redis-named runtime store helpers using injected clients, with resource JSON envelope utilities, hydration and migration behavior, queued writes, close handling, alternate
get/setadapter hooks, package exports, typings, and tests. Commit 639dfa1.
- 2026-05-07 - Ignored the temporary folder in git. Commit ad4e52a.
- 2026-05-11 - Bumped
actions/setup-nodefrom v4 to v6. Commit d4b23e4. - 2026-05-11 - Bumped
actions/checkoutfrom v4 to v6. Commit 7dffcc0. - 2026-05-14 - Split the monolithic test suite into focused test files for CLI, config, doctor, package, runtime, schema, sync, and examples coverage. Commit e8e4e8e.
- 2026-05-14 - Extracted schema logic into feature modules for fields, generated metadata, project loading, relations, resources, sources, and validation. Commit 4503af8.
- 2026-05-14 - Modularized the CLI, runtime, config, doctor, sync, integration, and generator code into feature and shared namespaces while preserving compatibility exports. Commit d7de49b.
- 2026-05-14 - Added the May 14 source-reader, runtime, REST formatting, resource naming, schema-manifest, and modularization work together. Commit 58ac729.
- 2026-05-14 - Added architecture documentation, README and agent-guide cross-references, package globs for example metadata/source files, and command-specific CLI help handling. Commit 0b4d31e.
- 2026-05-14 - Printed subcommand help before loading project config, with focused help for
types,schema,doctor,serve, andgenerate. Commit 0ba1c13. - 2026-05-14 - Added redundant-write avoidance and generated metadata preservation together. Commit d15b30c.
- 2026-05-19 - Restructured project documentation into a task-focused
docs/handbook and expanded README coverage for schema metadata, GraphQL, file maps, examples, generated files, configuration, server/viewer behavior, package APIs, integrations, CI, and release guidance. Commits 8cce7d8, 14d2a53, and e5f104d. - 2026-05-20 - Ignored generated
.jsondb/output and removed generated example runtime artifacts, state snapshots, schema outputs, and generated type copies fromexamples/*/.jsondb. Commit d54356d. - 2026-05-20 - Pinned
actions/checkoutandactions/setup-nodein CI to exact commit SHAs while keeping version comments, making GitHub Actions runs deterministic instead of relying on floating action tags. Commit 4bde6b5.