Releases: mickamy/adms
Releases · mickamy/adms
Release list
v0.0.1
Changelog
Features
- 22b10bc feat(build): add Select query builder for read API
- 8e2f7e3 feat(build): add insert, update, and delete SQL builders
- 3a1e5fa feat(build,server): expand embedded relations into JSON subqueries
- c58c8f4 feat(cli): add --timeout flag for check command
- 803fa53 feat(cli): add signal handling and timeout to check command
- 979778b feat(cli): apply --allowed-tables filter in check command
- a19a13f feat(cli): implement adms check (config + introspect summary)
- 858c8f5 feat(config): add default_limit and max_limit options
- eebe229 feat(config): add max_body_bytes setting with 10 MiB default
- 3e9d9d9 feat(config): load configuration from YAML/TOML file with env expansion
- 0486bce feat(database): add driver open for PostgreSQL and MySQL
- ba8e3c3 feat(dialect): add JSONObject and EmptyJSONArray helpers
- 4f7c042 feat(logger): wrap log/slog with SetDefault-based default and source-aware helpers
- 5428e73 feat(query): add PostgREST-style URL query parser
- ca5eff0 feat(query): cs/cd containment operators (PG @>, MySQL JSON_CONTAINS)
- 7da0654 feat(query): support relation embedding and alias in select
- 43338ef feat(schema): add core types and dialect (PG/MySQL impl + tests)
- 74797b3 feat(schema): add introspection impl and integration test infra
- 1cab977 feat(schema): introspect indexes with method and partial predicate
- b055585 feat(server): add CORS middleware gated by cors_origins
- e4d3fe9 feat(server): authenticate requests with bearer token via auth_token_env
- 219d03f feat(server): expose read handler with problem details errors
- 210d646 feat(server): format TextMarshaler CSV cells (e.g. time.Time) as RFC 3339
- 2bfa745 feat(server): implement write API with Prefer header and Content-Range
- 83d056f feat(server): map PG and MySQL constraint errors to 409 / 400
- 29aa982 feat(server): support CSV export via Accept: text/csv on the read endpoint
- ab18f48 feat(ui): add /t/{table}/schema page with column, PK, FK, and index sections
- 414bc0f feat(ui): add CSV / JSON export buttons to the table view
- 56c223e feat(ui): add a Cmd/Ctrl+K command palette to jump between tables
- eadcc28 feat(ui): add a light/dark theme toggle
- b149562 feat(ui): add a schema ER diagram with force-directed layout
- 76af8b1 feat(ui): add a11y landmarks, aria-current, dialog labelling, live regions
- 7294440 feat(ui): add insert / edit / delete UI for single-PK tables
- af5ddd0 feat(ui): add opt-in admin UI scaffolding with sidebar and table read view
- 825ea18 feat(ui): add up/down row navigation to the table view
- 344b028 feat(ui): auto-prefix filter values with the kind-default operator
- 49d8ffd feat(ui): edit rows in a modal from the table view
- e4a084f feat(ui): embed minified Tailwind CSS instead of fetching the Play CDN
- 8b2174b feat(ui): forward auth_token_env to browser fetch via meta tag and fetch wrapper
- e08a403 feat(ui): hide write affordances and 404 the new-row page when read_only
- 148e390 feat(ui): inline cell edit in the table view via double-click
- b47f0b3 feat(ui): kind-aware placeholders on the table-view filter inputs
- cad671b feat(ui): link outgoing FK columns and list referenced-by tables on row detail
- d511822 feat(ui): render type-aware form inputs and parse values by column kind
- b5f23ea feat(ui): swap the table-view "Loading…" text for skeleton rows
- f0c353c feat: serve schema and healthz over http with graceful shutdown
Bug fixes
- 1f97a34 fix(build): order one-to-many embed JSON aggregate by child primary key
- cbd3a8f fix(build): reject duplicate select columns to avoid map key collisions
- 330f66c fix(build): reject non-positive limits in Select
- 782a574 fix(build): reject select lists that mix '*' with named columns
- d968557 fix(build): resolve embeds against qualified FK names, detect ambiguity, escape JSON keys
- 9ad9b52 fix(build): seed star expansion when checking embed alias duplicates
- 962a892 fix(cli): label zero-table summary as (no tables found) instead of (driver default)
- 0b81ea7 fix(cli,config): keep --help output visible without duplicating parse errors
- 71a003a fix(config): defer env expansion until after YAML/TOML decode
- cf7e869 fix(config): include config path in YAML/TOML decode errors
- 537b53d fix(config): include config path in validation errors from Load
- 8df3061 fix(config): reject explicit zero default_limit and max_limit
- f21ab1f fix(config): reject multi-document YAML to honor strict decoding
- f785727 fix(config): reject zero and negative timeout values
- cc9bdd2 fix(config): suppress duplicate flag parse errors
- bdcdaa9 fix(config): surface non-NotExist stat errors from Detect
- bc98b69 fix(config): treat whitespace-only driver and dsn as missing
- c1f4539 fix(config): trim whitespace and drop empty entries from string slices
- e81081a fix(config): trim whitespace from all scalar string fields during normalize
- 0c73872 fix(dialect): escape backslashes in MySQL string literals
- 87e7103 fix(make): ensure docker compose down runs even if up or tests fail
- 50fa401 fix(query): only treat top-level ':' as the alias separator
- 510fcf9 fix(query): reject ':' inside relation names to fail fast
- f49cb06 fix(query): reject empty filter column and quote inputs in errors
- e00a2e6 fix(query): split error messages for select alias and embed
- e8ba6e2 fix(query): tighten parser edge cases (dup keys, order suffix, in.())
- aba9003 fix(query): trim filter value before parsing not. and operator
- 019570a fix(query): trim whitespace from order and filter columns
- c333da7 fix(schema): always emit slice fields and qualify FK tables uniformly
- 832aec2 fix(schema): guard mysqlListTables against empty schemas to avoid invalid SQL
- 39fff34 fix(schema): handle NULL from SELECT DATABASE() in mysql introspector
- 39b0c6b fix(schema): harden mysql helpers (empty placeholders, NUL fk key)
- dfd3818 fix(schema): refine mysql IsGenerated detection (exclude DEFAULT_GENERATED)
- 111d6a9 fix(schema): scope FK accumulation by linked table and consolidate shared types
- 4580f37 fix(schema): scope pg FK grouping key by schema to avoid cross-schema collisions
- 4b89d47 fix(schema): split qualify into pgQualify and mysqlQualify
- 1fb4eed fix(server): apply per-request timeout to read query
- 7184d54 fix(server): bind before logging, dedupe statusRecorder WriteHeader
- 963a73f fix(server): bypass auth for /healthz with trailing slash too
- 9db571c fix(server): decode embed subquery JSON payloads from driver bytes
- d5b68f7 fix(server): default nil Logger to io.Discard, expose Unwrap from statusRecorder
- e8893c7 fix(server): defensively copy non-UTF-8 scan bytes to outlive next Scan
- 9ed9a62 fix(server): escape log paths and cache schema JSON across requests
- a6c17e9 fix(server): force-close listener when graceful shutdown errors
- 39ec2c8 fix(server): log panics, drain serve error on shutdown, harden timeouts
- a60c825 fix(server): map PATCH filter-...