Skip to content

graphpg 1.1.0

Choose a tag to compare

@mihailtd mihailtd released this 15 Oct 05:57
· 9 commits to main since this release
56d7ca7

Container image

docker pull ghcr.io/mihailtd/graphpg:1.1.0

Digest: sha256:773e1cdb2e16296aada1eeb7aa0a8077bf76c0b9d2731a41b38fe2bbdf76990f. The image is signed with Sigstore:

cosign verify ghcr.io/mihailtd/graphpg@sha256:773e1cdb2e16296aada1eeb7aa0a8077bf76c0b9d2731a41b38fe2bbdf76990f \
  --certificate-identity-regexp '^https://github.com/mihailtd/graphpg/' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

What's changed

What's Changed

Features

  • feat(subscriptions): live queries over WebSocket, SSE and multipart by @mihailtd in #200
  • fix: bugs found exploring a large schema (FHIR R5) and fuzzing its inputs by @mihailtd in #201

Other changes

  • Build(deps): Bump tower-http from 0.6.11 to 0.7.1 by @dependabot[bot] in #1
  • Build(deps): Bump base64 from 0.22.1 to 0.23.1 by @dependabot[bot] in #2
  • feat(config): sectioned config model with dev/prod modes (#69) by @mihailtd in #90
  • feat(ui): serve GraphiQL and Scalar from packages embedded in the binary by @mihailtd in #89
  • ci: stop PRs from filling the cache, build the image only when it can break by @mihailtd in #91
  • ci: clean the warnings out of the CI logs by @mihailtd in #92
  • ci: let a Publish run finish so the image cache gets written by @mihailtd in #93
  • ci: build only the UI's JavaScript before the cache is restored by @mihailtd in #94
  • ci: do not build the image for workflow-only changes by @mihailtd in #96
  • feat(config): migrate to secrets model, runtime modes, and watch options by @mihailtd in #97
  • feat(openapi): generate and serve OpenAPI 3.1 document (#88, #80) by @mihailtd in #98
  • feat(planner): protocol-neutral request model, adapter, and response shaping (#64, #65, #66) by @mihailtd in #103
  • feat(rest): implement minimal REST list endpoint through planner (#87) by @mihailtd in #104
  • feat(rest): implement REST reads: filtering, ordering, pagination and embedding (#58) by @mihailtd in #105
  • feat(rest): implement REST writes, RFC 9457 errors, and OpenAPI 3.1 spec (#40, #60) by @mihailtd in #106
  • fix(rest): strict input, raw keys, opt-in counts, safe errors and a spec that matches (#58, #60, #40, #62) by @mihailtd in #109
  • feat(rest): functions, aggregates, search methods and views over REST (#58) by @mihailtd in #110
  • feat: shared safety limits, REST write coverage, nested-write OpenAPI, pinned schemas, Scalar fix (#62, #11, #13, #60, #40, #75, #81, #82) by @mihailtd in #111
  • feat(security): configurable CORS, open in dev and off in prod (#84) by @mihailtd in #113
  • feat(security): security headers middleware with presets (#83) by @mihailtd in #114
  • docs: compare REST with PostgREST; refresh docs for REST, limits and pinning; fix composite/range columns and OpenAPI type drift by @mihailtd in #112
  • feat: error detail by mode, introspection switch, SDL over HTTP by @mihailtd in #115
  • feat(rest): CSV, multipart and binary columns, OPTIONS (#101) by @mihailtd in #126
  • feat(openapi): links from foreign keys, constraint keywords, STI discriminators by @mihailtd in #127
  • feat(rest): Range and Content-Range on lists (#117) by @mihailtd in #130
  • feat(rest): richer filters: regex, isDistinctFrom, any/all, or/not groups (#119) by @mihailtd in #132
  • feat(rest,server): HTTP semantics, operational probes, range filters, and RPC raw JSON by @mihailtd in #133
  • feat(rest): planned/estimated counts (#129), custom RFC 9457 errors (#123), and CTI support (#128) by @mihailtd in #134
  • feat(rest): schema in the path, /rest/{schema}/{resource} and /rest/{schema}/rpc/{function} (#122) by @mihailtd in #135
  • feat(rest): embedding controls, collection writes, webhooks and the PostgREST benchmark (#118, #116, #100, #63) by @mihailtd in #136
  • feat: GraphQL and OpenAPI know the same things about the database (parity report and ports) by @mihailtd in #137
  • Build(deps): Bump node from b341ca6 to 0b36e8c by @dependabot[bot] in #107
  • Build(deps): Bump monaco-editor from 0.52.2 to 0.57.0 in the npm group by @dependabot[bot] in #108
  • feat(telemetry): Prometheus metrics, OpenTelemetry traces/metrics/logs and JSON logs by @mihailtd in #142
  • fix(ci): green CI and Publish again (monaco pin, pnpm install race, startup test timing) by @mihailtd in #143
  • ci: run CI on the self-hosted k8s runners (CI_RUNS_ON) by @mihailtd in #145
  • feat(security): rate limits and persisted queries with an allow-list by @mihailtd in #146
  • feat(graphql): partial results when a root field fails on its own by @mihailtd in #147
  • fix(security): node(id:) and _entities respect omitted reads by @mihailtd in #148
  • docs(fdw): foreign data wrappers guide, with postgres_fdw and file_fdw tests by @mihailtd in #149
  • feat(fdw): typed remote key violations, SOURCE_UNAVAILABLE, one lookup per key by @mihailtd in #158
  • docs(comparison): drop gaps that shipped, fix PTxxx and multi-source rows by @mihailtd in #160
  • fix(catalog): honour PostgreSQL 18 NOT ENFORCED constraints and NOT VALID checks by @mihailtd in #159
  • chore: changelog fragments in changelog.d/ instead of editing CHANGELOG.md by @mihailtd in #166
  • feat(server): schema reload without a restart (NOTIFY graphpg_reload, SIGHUP) by @mihailtd in #161
  • feat: NULLS FIRST / NULLS LAST ordering, with exact keyset pagination by @mihailtd in #162
  • feat(catalog): startup advice for foreign tables by @mihailtd in #164
  • perf(fdw): opt-in batched relations into foreign tables by @mihailtd in #165
  • feat(events): event triggers — webhooks on row changes and schedules by @mihailtd in #167
  • ci: a PostgreSQL 18 test image with the extensions graphpg integrates with by @mihailtd in #178
  • ci: build the test image on the CI runners (CI_RUNS_ON) by @mihailtd in #179
  • feat(catalog): extension integrations framework, CI on the extension image by @mihailtd in #180
  • feat(timescaledb): fast hypertable totals, descriptions and advice by @mihailtd in #181
  • feat(pg_jsonschema): a JSON Schema check types its column in OpenAPI by @mihailtd in #182
  • feat(pgmq): queues as API over GraphQL and REST by @mihailtd in #183
  • feat(vector): pgvectorscale and VectorChord indexes as semantic search by @mihailtd in #184
  • feat(search): PGroonga indexes as full-text search, in any language by @mihailtd in #185
  • feat(advise): graphpg's most expensive operations, with the indexes they lack by @mihailtd in #186
  • test: fixtures keep their search_path to themselves by @mihailtd in #188
  • docs(foreign-data): pg_duckdb files through materialized views by @mihailtd in #187
  • fix(pool): extensions in a schema of their own resolve by @mihailtd in #189
  • feat(fdw): import the keys of postgres_fdw foreign tables from the remote catalog by @mihailtd in #190
  • test(parquet): pg_duckdb Parquet sources in CI by @mihailtd in #191
  • ci(publish): run on the configured runners (CI_RUNS_ON), like CI by @mihailtd in #192
  • ci(publish): install Trivy on self-hosted runners by @mihailtd in #193
  • perf(aggregates): parallel distinct counts for root connections by @mihailtd in #194
  • ci(publish): provide envsubst for cosign-installer on self-hosted runners by @mihailtd in #195
  • Build(deps): Bump the cargo group across 1 directory with 9 updates by @dependabot[bot] in #177
  • Build(deps): Bump drizzle-orm from 0.45.3 to 0.45.4 in the npm group across 1 directory by @dependabot[bot] in #141
  • Build(deps): Bump rust from 1.98.1-alpine to 1.99.0-alpine by @dependabot[bot] in #138
  • Build(deps): Bump the actions group across 1 directory with 3 updates by @dependabot[bot] in #139
  • Build(deps): Bump node from 0b36e8c to 143494b by @dependabot[bot] in #144
  • feat(dev): statements report at /debug/statements; fix the default schema by @mihailtd in #196
  • feat(dev): warn once per operation that gets slow by @mihailtd in #197
  • refactor(pgmq): remove the queue integration, document wrapper functions by @mihailtd in #198
  • docs: Extending graphpg (no custom resolvers or plugins) by @mihailtd in #199
  • feat: k6 exploratory suite, rename warnings, cheaper plans for wide rows by @mihailtd in #202
  • feat!: English type names; typed keys and ByNodeId for updates and deletes by @mihailtd in #203
  • fix: auth claims, concurrent DDL and failover found by exploration by @mihailtd in #204
  • release: 1.1.0, the first published release and the stable API by @mihailtd in #205

New Contributors

Full Changelog: https://github.com/mihailtd/graphpg/commits/v1.1.0