Skip to content

Latest commit

 

History

History
3696 lines (3034 loc) · 188 KB

File metadata and controls

3696 lines (3034 loc) · 188 KB

graphile-build-pg

5.1.3

Patch Changes

  • #3121 4b6f5bf Thanks @benjie! - Allow PostgreSQL enum table with no values... catch at GraphQL layer.

5.1.2

Patch Changes

5.1.1

Patch Changes

  • #3110 d228173 Thanks @benjie! - Changes proc:filterBy behavior to condition:proc:filterBy so that postgraphile-plugin-connection-filter can use filter:proc:filterBy and they can be controlled independently

  • #3105 0b00895 Thanks @benjie! - Introduce build.getPgCodecByDatabaseName helper.

  • #3108 c67c6ef Thanks @benjaie! - Turn getGraphQLTypeByPgCodec situations into a string union with central registry so it can be autocompleted.

  • #3112 cc61adc Thanks @benjie! - Add @isIndexed smart tag so columns and foreign key constraints can be treated as if they are indexed even if they aren't (for the purposes of the default index behavior plugin)

5.1.0

Minor Changes

  • #3084 dd3db66 Thanks @benjie! - Add 'oid' as a builtin type.

  • #3098 75444ac Thanks @benjie! - Fix: index behaviors plugin updated so that only attributes (columns) on tables, materialized views and foreign tables are scanned for indexes; all other types (including composite types, views, ...) are given the benefit of the doubt.

    This might result in more fields showing up in your schema.

Patch Changes

  • #3065 9446f64 Thanks @benjie! - fieldArgs are now created in the root plan and applied in the layer plan of the target step; this fixes an issue where fieldArgs could not be applied to step with side effects.

  • #3088 d3d4376 Thanks @benjie! - Add pgResource.extensions.isView, .isMaterializedView, .isForeignTable so plugins can determine which resources came from views/materialized views/foreign tables.

  • #3086 65527f8 Thanks @benjie! - Add build.dataplanJson property - a copy of @dataplan/json

  • #3099 4b5b673 Thanks @benjie! - PostGraphile will only throw an error when it fails to read enum table values from a table in a published schema (one in the schemas list in your pgServices); enum tables in other schemas will result in a warning instead (since during the gather phase we don't know whether or not they will be needed come schema build time).

  • #3089 24a9481 Thanks @benjie! - Domain codecs can now indicate if they have a default value.

  • #3063 d3156df Thanks @benjie! - Improve scopes around PgMutationCreatePlugin

  • Updated dependencies [350dd8d, 5f95b1c]:

    • graphile-config@1.1.0

5.0.2

Patch Changes

5.0.1

Patch Changes

5.0.0

Identical to 5.0.0-rc.8.

5.0.0-rc.8

Patch Changes

  • #2990 5d408bd Thanks @benjie! - No code changes. Updates the release process, cleans up package.json, uses fixed identifiers for peer dependencies (unless they're explicit dependencies also). Hopefully move to trusted publishing.
  • Updated dependencies [5d408bd]:
    • pg-introspection@1.0.0-rc.5
    • graphile-config@1.0.0-rc.6
    • pg-sql2@5.0.0-rc.5

5.0.0-rc.7

Patch Changes

  • #2968 f9b5e53 Thanks @benjie! - 🚨 PostgreSQL function parameters required property has been removed and replaced with its inverse optional. Checks for parameter.required should be replaced with !parameter.optional. Omitting this configuration option will now have the effect of marking the parameter as required (which matches Postgres' default) rather than optional as before.

    (A temporary getter has been added to allow both required and optional to be used for a short time, but this will output a warning if it's hit and will not persist through an executable schema export. Please update your code to use optional instead of required as soon as possible, we'll be removing this compatibility shim once V5 is released.)

  • Updated dependencies [f9b5e53]:

    • @dataplan/pg@1.0.0-rc.7

5.0.0-rc.6

Minor Changes

Patch Changes

  • #2957 5615d3f Thanks @benjie! - Significantly reduce the size of a PostGraphile exported schema (around 20% reduction on test fixtures) by:

    • marking optional things as optional
    • excluding many optional things from being specified in configuration objects (including tags objects if no tags are present)
    • using LIST_TYPES for PostgreSQL builtin list types
    • extracting inline function definitions to be global functions where appropriate, and simplifying functions where not

    Breaking changes to types (but more accurate reflection of reality):

    • extensions is now marked as optional in many places.
    • extensions.tags is now marked optional in many places.
    • PgCodecAttribute.notNull is now marked as optional.
    • PgResourceParameter.requires is now marked as optional.
    • PgCodecRelation.isUnique is now marked as optional.
    • pgGetArgDetailsFromParameters().argDetails.postgresArgName is now optional (may return undefined in addition to null) and .required is now optional (returns boolean | undefined)
  • #2956 b793077 Thanks @benjie! - Internal refactor: replace usage of isExecutableStep/assertExecutableStep with isStep/assertStep.

  • #2965 d15e1c2 Thanks @benjie! - Make EXPORTABLE's scope a readonly array for greater compatibility.

  • #2965 5821e39 Thanks @benjie! - Further reduce the size of schema exports by optimizing plan functions

  • #2959 c9fd9f3 Thanks @benjie! - Use shared logic to decrease export size.

  • #2964 8543720 Thanks @benjie! - Reduce export size by simplifying a plan resolver.

  • #2962 b73416b Thanks @benjaie! - Improve export optimization to remove redundant repeated identifier arguments from local helper function calls, resulting in smaller and more straight-forward exports and easier optimizations for third-party plugins where imports are discouraged.

  • Updated dependencies [5615d3f, b793077, 8384026, 81ade71, 57dfa70, d15e1c2, eb9695b, c0b8af9, 5821e39, c9fd9f3, 60c8690]:

    • graphile-build@5.0.0-rc.5
    • @dataplan/pg@1.0.0-rc.6
    • grafast@1.0.0-rc.8
    • tamedevil@0.1.0-rc.5

5.0.0-rc.5

Patch Changes

  • #2937 8f50146 Thanks @benjie! - Eliminate dangling promises, reducing chance of process exit due to unhandled promise rejection.
  • Updated dependencies [8f50146, 5e83533, 03e5ce5, f213a8e]:
    • graphile-config@1.0.0-rc.5
    • @dataplan/pg@1.0.0-rc.5
    • grafast@1.0.0-rc.7

5.0.0-rc.4

Patch Changes

  • a3722d6 Thanks @benjie! - Refactor to enable TypeScript options rewriteRelativeImportExtensions and erasableSyntaxOnly (including using .ts extensions in source code)

  • #2922 5fc379e Thanks @benjaie! - Fix some JSDoc comments and enable linting for these.

  • #2927 1d5d63e Thanks @benjie! - Added Fastify v5 adaptor (copy/paste of v4 adaptor)

  • #2897 7ca663e Thanks @benjie! - Fix various places where inflection.builtin() was not called, and thus changes to builtin inflection were not reflected. (Also adds test to prevent regression.)

  • Updated dependencies [9eb3829, a3722d6, e1fcecc, 0f913ee, 5fc379e, 7ca663e]:

    • graphile-build@5.0.0-rc.4
    • pg-introspection@1.0.0-rc.4
    • graphile-config@1.0.0-rc.4
    • @dataplan/pg@1.0.0-rc.4
    • grafast@1.0.0-rc.5
    • tamedevil@0.1.0-rc.4
    • pg-sql2@5.0.0-rc.4

5.0.0-rc.3

Patch Changes

  • #2867 86db203 Thanks @benjie! - Change type of GraphileBuild.Build.sql to be more explicit.

  • #2877 1e45a3d Thanks @benjie! - Safety - use null prototype objects in more places.

  • #2873 0772086 Thanks @benjie! - Update TypeScript configuration to support Node 22 minimum

  • #2887 a565503 Thanks @benjie! - Internals reworked to use Promise.withResolvers() instead of removed defer() function.

  • #2888 1a56db2 Thanks @benjaie! - Node v22+ is required for this module.

  • #2850 456d387 Thanks @benjie! - Handle primary key columns called Id, ID and... I guess... iD when renaming id -> rowId to make space for the id: ID! Relay column when using the Amber preset without V4 preset.

  • #2880 c65d03c Thanks @benjie! - Fix PgIntrospectionPlugin to handle new PgSubscriber behavior where subscriptions aren't auto-restored

  • #2868 a258427 Thanks @benjie! - Overhaul types of .where(), .having(), .orderBy() and similar methods to avoid invalid embeds resulting in runtime errors - TypeScript should complain if you do the wrong thing now. To fix your code in most cases you can switch to the callback form: e.g. .orderBy({ ... }) becomes .orderBy(sql => ({ ... })) - the sql here is scoped to explicitly allow some embeds.

  • Updated dependencies [44555c7, b69a2b0, c2ae685, 1e45a3d, 0772086, a60ed2a, a565503, d9ccc82, 1a56db2, eafa3f0, 22bfbc0, bd3250e, db3d7cb, b27c562, f23f0cf, afe31f0, d3a1be9, a258427, 65d9556]:

    • grafast@1.0.0-rc.4
    • @dataplan/pg@1.0.0-rc.3
    • graphile-build@5.0.0-rc.3
    • graphile-config@1.0.0-rc.3
    • pg-introspection@1.0.0-rc.3
    • pg-sql2@5.0.0-rc.3
    • tamedevil@0.1.0-rc.3

5.0.0-rc.2

Patch Changes

  • #2806 5ad7ad0 Thanks @benjie! - Fix issues with extending interfaces by adding new build.append helper.

  • #2834 bd6b605 Thanks @benjie! - Hide conflict errors when installing watch fixtures.

  • #2829 a82e6fa Thanks @benjie! - Update dependency ranges.

  • Updated dependencies [5ad7ad0, f3a9869, 68f61cd, 8cfe23f, a82e6fa]:

    • graphile-build@5.0.0-rc.2
    • grafast@1.0.0-rc.2
    • pg-sql2@5.0.0-rc.2
    • pg-introspection@1.0.0-rc.2
    • graphile-config@1.0.0-rc.2
    • @dataplan/pg@1.0.0-rc.2
    • tamedevil@0.1.0-rc.2

5.0.0-rc.1

Patch Changes

  • #2752 92781a1 Thanks @benjie! - Softens the requirements for a column/relation to be treated as "indexed" to reflect the optimizations in Postgres v18+. (This may result in more fields, filters, orders and relations appearing in your PostGraphile schema - you can use @behavior -filterBy -orderBy on columns and @behavior -select -list -connection -single -manyToMany on foreign key constraints to remove them again.)

  • #2758 eb39702 Thanks @benjie! - Apply pgOrderByNullsLast to computed columns too.

  • 8a5a7c5 Thanks @benjie! - Bump to release candidate

  • Updated dependencies [9797500, be318e6, abb623d, 31b388c, 930240a, 7b86454, 42a0785, d196d60, 982c1a5, 6a4e3b9, c6cbe61, d4ac603, 8a5a7c5, ea0135f, 91b8376, b6821f5]:

    • @dataplan/pg@1.0.0-rc.1
    • grafast@1.0.0-rc.1
    • pg-sql2@5.0.0-rc.1
    • graphile-build@5.0.0-rc.1
    • pg-introspection@1.0.0-rc.1
    • graphile-config@1.0.0-rc.1
    • tamedevil@0.1.0-rc.1

5.0.0-beta.47

Patch Changes

  • #2730 4c3cf22 Thanks @benjie! - Update graphql version range

  • #2142 0465b4a Thanks @benjie! - GraphQL v16.9.0+ is now required for enum thunk support (enums will now break without this)

  • #2716 a0a6082 Thanks @benjie! - Add ability for Postgres client to capture RAISE NOTIFY issued during an SQL query. An example follows:

    Database:

    create table foo (id serial primary key, bar text);
    create function tg_foo() returns trigger language plpgsql volatile as $
    begin
      raise notice 'Hello World' using hint = 'Hi, ' || NEW.bar;
      return NEW;
    end;
    $;
    create trigger _insert before insert on foo for each row execute function tg_foo();

    Plugin:

    const plugin = extendSchema({
      typeDefs: /* GraphQL */ `
        type PgNotice {
          severity: String
          message: String
          code: String
          detail: String
          hint: String
        }
        extend type CreateFooPayload {
          messages: [PgNotice]
        }
      `,
      plans: {
        CreateFooPayload: {
          messages($payload: any) {
            const $result = get($payload, "result") as PgInsertSingleStep;
            return $result.getNotices();
          },
        },
      },
    });

    Result:

    {
      "data": {
        "createFoo": {
          "clientMutationId": null,
          "foo": {
            "id": "WyJmb29zIiwzXQ==",
            "bar": "inputvalue"
          },
          "messages": [
            {
              "severity": "NOTICE",
              "message": "Hello World",
              "code": "00000",
              "detail": null,
              "hint": "Hi, inputvalue"
            }
          ]
        }
      }
    }
  • #2709 b539002 Thanks @benjie! - Fix a bug in watch fixtures where refreshing a materialized view would result in the schema being rebuilt (thanks @zarybnicky!)

  • #2711 020b579 Thanks @JannisKoeksel! - Add missing exports for 4 plugins (thanks @JannisKoeksel)

  • #2723 e790f7a Thanks @benjie! - @dataplan/pg now exports sql from pg-sql2 and also adds forwards to the whole module (import ... from '@dataplan/pg/pg-sql2')

  • #2706 13eb44b Thanks @benjie! - Makes isPgCreateMutation/isPgUpdateMutation/isPgDeleteMutation scope available, and sets the resource for easier hooking of mutation fields.

  • #2718 74e15d5 Thanks @benjie! - Port the "enum table domains" feature from PostGraphile V4, so enum table values can be used as input and output from PostgreSQL functions.

  • #2715 3488ac0 Thanks @benjie! - Add shortcuts for improved DX:

    • build.pgResourcesbuild.input.pgRegistry.pgResources
    • build.pgCodecsbuild.input.pgRegistry.pgCodecs
    • build.pgRelationsbuild.input.pgRegistry.pgRelations
    • build.pgExecutor is the first executor (the only executor unless you're using multiple databases)
  • #2718 b20a63f Thanks @benjie! - Move a graphile-build-pg type out of @dataplan/pg

  • #2725 d414491 Thanks @benjie! - Enable partitions to be exposed via the @partitionExpose child or @partitionExpose both smart tags on the partitioned table. Also adds a global configuration option for managing the default setting for this (parent by default: only expose the parent partitioned table, not its underlying child partitions).

  • #2723 05f3e44 Thanks @benjie! - ObjectStep<PgExecutorContextPlans<...>> is deprecated; please use Step<PgExecutorContext<...>> instead.

  • #2723 81c62bb Thanks @benjie! - makePgResourceOptions() is now simply pgResourceOptions()

  • Updated dependencies [4c3cf22, 7ce4d41, 0465b4a, 71e0af2, a0a6082, ab96e5f, 278b4d3, eaa771b, e28e4d9, e790f7a, c8412aa, d0c15cc, b20a63f, 1ec7ee5, bffbb77, c48ca48, 05f3e44, 81c62bb]:

    • graphile-build@5.0.0-beta.39
    • @dataplan/pg@0.0.1-beta.39
    • grafast@0.1.1-beta.27
    • pg-introspection@0.0.1-beta.13

5.0.0-beta.46

Patch Changes

  • #2700 dcd3583 Thanks @benjie! - Switch to consistently using workspace:^ dependencies (in an attempt to appease pnpm)
  • Updated dependencies [dcd3583]:
    • @dataplan/pg@0.0.1-beta.38

5.0.0-beta.45

Patch Changes

  • #2686 5dbb9e8 Thanks @benjie! - Fix a bug with mutations where the results of computed columns were calculated using the snapshot from before the mutation (due to the way Postgres works). Solved by breaking the post-mutation function calls out into a separate post-mutation statement.

  • #2683 68a1243 Thanks @benjie! - 🚨 Refs no longer have singularized/pluralized names - we take the name verbatim and apply the list/connection suffix to it as needed.

    If you need the old naming back, please use this plugin (untested):

    const MyRefsInflectionPlugin = {
      name: "MyRefsInflectionPlugin",
      inflection: {
        replace: {
          refSingle(orig, resolvedPreset, { refDefinition, identifier }) {
            return (
              refDefinition.singleRecordFieldName ?? this.singularize(identifier)
            );
          },
          refList(orig, resolvedPreset, { refDefinition, identifier }) {
            return (
              refDefinition.listFieldName ??
              this.listField(this.pluralize(this.singularize(identifier)))
            );
          },
          refConnection(orig, resolvedPreset, { refDefinition, identifier }) {
            return (
              refDefinition.connectionFieldName ??
              this.connectionField(this.pluralize(this.singularize(identifier)))
            );
          },
        },
      },
    };
  • #2689 6762c70 Thanks @benjie! - Fix bug in PgIndexBehaviorsPlugin that would treat all view attributes as unindexed. Views can't have indexes, so we must give them the benefit of the doubt.

  • #2687 7766c19 Thanks @benjie! - Fix issue whereby nodeId:insert/nodeId:update permissions were not rejected by PgRBACPlugin when the underlying columns were not writable.

  • #2678 6dafac1 Thanks @benjie! - Remove peer dependency optionality in an attempt to satisfy pnpm's installation algorithms

  • Updated dependencies [5dbb9e8, cfd4c3c, c3f9c38, 3d5c464, 05b971e, 13513dd, bc2b188, 87a4c92, 703d162, c13813e, 4a9072b, 6dafac1, e15f886, 34efed0, 185d449, e2048e2]:

    • @dataplan/pg@0.0.1-beta.37
    • graphile-config@0.0.1-beta.18
    • grafast@0.1.1-beta.26
    • graphile-build@5.0.0-beta.38
    • tamedevil@0.0.0-beta.9

5.0.0-beta.44

Patch Changes

  • 9e21b2a Thanks @benjie! - Allow changing the Node ID codec from the default (base64JSON) to your own default via the preset.schema.defaultNodeIdCodec setting, or even override it on a per-table basis with the @nodeIdCodec smart tag. Thanks @jsmnbom!

  • #2648 73f626b Thanks @benjie! - Internal refactor of PgTableNodePlugin for safety.

  • Updated dependencies [9e21b2a, 2adfd6e, 6113518]:

    • graphile-build@5.0.0-beta.37
    • @dataplan/pg@0.0.1-beta.36
    • grafast@0.1.1-beta.25

5.0.0-beta.43

Patch Changes

  • #2635 85c8364 Thanks @benjie! - Remove non-functional fields generated from mode:union-returning functions from the schema.

5.0.0-beta.42

Patch Changes

5.0.0-beta.41

Patch Changes

  • #2577 0c6b1f1 Thanks @benjie! - Update dependencies

  • Updated dependencies [0c6b1f1, e0cdabe]:

    • graphile-build@5.0.0-beta.35
    • graphile-config@0.0.1-beta.17
    • @dataplan/pg@0.0.1-beta.34
    • grafast@0.1.1-beta.23

5.0.0-beta.40

Patch Changes

  • #2575 5c802ea6819361eed36b75f246ae0adb35b14669 Thanks @benjie! - Fixes a bug in relational polymorphism where PostgreSQL functions returning polymorphic records were causing planning errors.
  • Updated dependencies []:
    • @dataplan/pg@0.0.1-beta.33
    • graphile-build@5.0.0-beta.34

5.0.0-beta.39

Patch Changes

5.0.0-beta.38

Patch Changes

5.0.0-beta.37

Patch Changes

5.0.0-beta.36

Patch Changes

  • Updated dependencies [83c546509]:
    • graphile-config@0.0.1-beta.14
    • @dataplan/pg@0.0.1-beta.30
    • grafast@0.1.1-beta.19
    • graphile-build@5.0.0-beta.31

5.0.0-beta.35

Patch Changes

  • Updated dependencies [7580bc16a, b336a5829]:
    • graphile-config@0.0.1-beta.13
    • @dataplan/pg@0.0.1-beta.29
    • grafast@0.1.1-beta.18
    • graphile-build@5.0.0-beta.30

5.0.0-beta.34

Patch Changes

  • #2269 bee1db4f4 Thanks @benjie! - Hotfix to inflection changes in beta.34 - fixes behavior of orderByAttributeEnum and removes V4 override of _joinAttributeNames which shouldn't be necessary (and seems to do more harm than good).

5.0.0-beta.33

Patch Changes

  • #2251 555d65cce Thanks @benjie! - We now enforce GraphQL name checks earlier and supply more information to better reveal where any invalid names are originating.

  • #2251 efa25d97d Thanks @benjie! - 🚨 Inflection changes! V4 preset should be (mostly) unaffected, but Amber preset will likely have changes between ID and ROW_ID in various places, plus missing underscores may reappear/etc. Be sure to diff your schema before/after this update (as you should with every update... and to be honest, with everything else that changes your schema).

    Normally camelCase/upperCamelCase/constantCase/etc are the final step before we name a field/type/enumValue/etc; however it turns out that some inflectors were using the camel-cased output as input to their own inflection - for example, when calculating the name of a relation it would take the column names camel-cased and then combine them into a string which was then camel-cased again. Even worse, when these values are then used in an enum, it would then be constant-cased, so you end up with string 👉 camel-case 👉 concatenate 👉 camel-case 👉 concatenate 👉 constant-case. This lead to certain edge cases where fields with numbers or underscores may come out in unexpected ways.

    This release creates "raw" backing inflectors for a few things that remove the final step (camel-casing) so that later usage may choose to use the raw value rather than the camel-cased value. And due to this, we've also moved the id 👉 rowId tweaks from the attribute() inflector into the _attributeName() inflector - which is where most of the changes have come from. We've undone this change in the V4 preset, so if you don't use the V5 preset but need to undo this change, please check out the V4 overrides of:

    Note: the V4 preset is fairly stable, but the Amber preset is being constantly iterated to improve the OOTB V5 experience - it will only be stable once V5.0.0 is released.

  • #2261 a202145c5 Thanks @benjie! - Fix bug causing modifications to introspection results (e.g. fake constraints) to be persisted to next watch tick via gather cache.

  • #2257 2a37fb99a Thanks @benjie! - Overhaul how PostgreSQL arrays are handled, and fix the "empty arrays become null" bug caused by using array_agg().

  • #2265 5d9f2de85 Thanks @benjie! - Prevents inlining (via joins) child PgSelect queries into parents when the parent is relying on implicit ordering coming from a function or suitably flagged subquery.

  • #2251 84f07626d Thanks @benjie! - 🚨 orderByAttributeEnum inflector no longer requires/provides attribute - it can be trivially fetched from codec and attributeName via const attribute = codec.attributes[attributeName]

  • #2250 86e228299 Thanks @benjie! - Integrate preset.lib into build and gather context so plugins can use modules without needing to install dependencies (and thus avoiding the dual package hazard).

  • #2249 933786868 Thanks @benjie! - PgCodec.extensions.pg.serviceName is now nullable to indicate natively supported PG types.

  • Updated dependencies [555d65cce, 69ab227b5, efa25d97d, d13b76f0f, b167bd849, dc5746594, 7bf045282, 2a37fb99a, 5d9f2de85, 6a13ecbd4, 86e228299, cba6ee06d]:

    • graphile-build@5.0.0-beta.29
    • grafast@0.1.1-beta.17
    • graphile-config@0.0.1-beta.12
    • pg-introspection@0.0.1-beta.10
    • pg-sql2@5.0.0-beta.7
    • @dataplan/pg@0.0.1-beta.28

5.0.0-beta.32

Patch Changes

  • #2229 87bdf9730 Thanks @benjie! - Fixes bug handling optional arguments to computed column functions.

  • #2230 aa480f6a3 Thanks @benjie! - Fix bug recognizing the required-ness of arguments to functions using out args or returns table - this particularly affects people using pgStrictFunctions and should result in a couple of required arguments becoming nullable.

  • Updated dependencies [5626c7d36, 76c7340b7]:

    • graphile-config@0.0.1-beta.11
    • grafast@0.1.1-beta.16
    • @dataplan/pg@0.0.1-beta.27
    • graphile-build@5.0.0-beta.28

5.0.0-beta.31

Patch Changes

  • #2208 632691409 Thanks @benjie! - Behaviors can now be registered by more than one plugin. Apply behaviors to more entities. Don't log so much.
  • Updated dependencies [632691409]:
    • graphile-build@5.0.0-beta.27

5.0.0-beta.30

Patch Changes

  • #2207 0b1f7b577 Thanks @benjie! - Fix overwhelming logs and errors being output by the new behavior system

  • Updated dependencies [0b1f7b577]:

    • graphile-build@5.0.0-beta.26

5.0.0-beta.29

Patch Changes

  • #2197 d7e6e714f Thanks @benjie! - Amber preset now supports @resultFieldName on mutation functions, like V4 preset does.

  • #2187 bb006ec7b Thanks @benjie! - Fix behavior inheritance especially around functions incorrectly inheriting from their underlying codecs, bugs in unlogged/temp table behavior, and incorrect skipping of generating table types. You may find after this change you have fields appearing in your schema that were not present before, typically these will represent database functions where you @omit'd the underlying table - omitting the table should not prevent a function from accessing it. Further, fix behavior of @omit read emulation to add -connection -list -array -single.

  • #2156 6fdc6cad8 Thanks @benjie! - Added pgRegistry.pgExecutors so executors don't need to be looked up from a resource (this causes confusion) - instead they can be referenced directly. By default there's one executor called main, i.e. build.input.pgRegistry.pgExecutors.main.

  • #2189 0df171123 Thanks @benjie! - Fix issue with manyToMany behavior warnings

  • #2158 dfac43992 Thanks @benjie! - 🚨 Amber preset no longer enables backward pagination options (before, last) on functions by default - add +backwards behavior to these functions to enable. If you're using the V4 preset you should be unaffected by this change because it enables +backwards by default.

  • #2160 426e9320e Thanks @benjie! - Massive overhaul of the behavior system which now has a centralized registry of known behaviors and applies behaviors in a more careful and nuanced way, removing many hacks and workarounds, and ultimately meaning that defaultBehavior: "-*" should now operate correctly. Importantly, addBehaviorToTags() has been removed - you should use plugin.schema.entityBehaviors to indicate behaviors as shown in this PR - do not mod the tags directly unless they're explicitly meant to be overrides.

    Technically this is a significant breaking change (besides the removal of the addBehaviorToTags() helper) because the order in which behaviors are applied has changed, and so a different behavior might ultimately "win". This shows up in places where there is ambiguity, for example if you add @filterable to a function that you don't have execute permissions on, that function will now show up in the schema since user overrides (smart tags) "win" versus inferred behaviors such as introspected permissions; this wasn't the case before. Hopefully most users will not notice any difference, and for those who do, the graphile behavior debug CLI may be able to help you figure out what's going on.

    Be sure to print your schema before and after this update and look for changes; if there are changes then you likely need to fix the relevant behaviors/smart tags. (Hopefully there's no changes for you!)

    You'll also need to change any places where you're specifying behaviors that will be type checked; you can either cast your existing strings e.g. defaultBehavior: "+connection -list" as GraphileBuild.BehaviorString, or preferably you can specify your behaviors as an array, which should give you auto-complete on each entry; e.g. defaultBehavior: ["connection", "-list"].

  • #2188 cc0941731 Thanks @benjie! - Overhaul the way in which graphile-config presets work such that including a preset at two different layers shouldn't result in unexpected behavior.

  • #2157 50f6ce456 Thanks @benjie! - 🚨 PostGraphile now ignores unlogged database tables by default.

  • #2199 3b09b414f Thanks @benjie! - Database enum comments are now reflected in the schema.

  • #2196 b7b6dd64f Thanks @benjie! - 🚨 @notNull on a volatile function now results in the field on the payload becoming non-null, not the mutation field itself.

  • #2155 8b472cd51 Thanks @benjie! - disablePlugins now supports TypeScript auto-completion of known plugin names. Other names are still accepted without error, so this is just a minor DX improvement rather than type safety.

  • #2198 ba637b56d Thanks @benjie! - Ensure that interface subtypes are added to schema even if not referenced directly.

  • Updated dependencies [d5834def1, 653929af0, 6fdc6cad8, 42b982463, eb69c7361, 54054b873, 884a4b429, 1eac03ec2, 38835313a, 426e9320e, 2efadc0f8, e8a9fd424, cc0941731, 50f6ce456, b0865d169, 3b09b414f, 8b472cd51, ba637b56d, 9cd9bb522]:

    • grafast@0.1.1-beta.15
    • graphile-build@5.0.0-beta.25
    • @dataplan/pg@0.0.1-beta.26
    • pg-introspection@0.0.1-beta.9
    • graphile-config@0.0.1-beta.10

5.0.0-beta.28

Patch Changes

  • #2149 52ef49ca9 Thanks @benjie! - Fixed a bug in 'relational' polymorphism where relations to each of the concrete types would non-sensically be added to each of the concrete types.

  • #2149 d9d07b97b Thanks @benjie! - 🚨 pgCodecRef behaviors are now presented a [codec, refName] tuple rather than the ref object directly. You can get the old ref object via codec.refs?.[refName]

  • Updated dependencies [82ce02cd9, 871d32b2a, e8a0c4441, a26e3a30c, eca7e62e2, 02c11a4d4]:

    • @dataplan/pg@0.0.1-beta.25
    • grafast@0.1.1-beta.14
    • graphile-build@5.0.0-beta.24

5.0.0-beta.27

Patch Changes

  • Updated dependencies [807650035]:
    • @dataplan/pg@0.0.1-beta.24
    • grafast@0.1.1-beta.13
    • graphile-build@5.0.0-beta.23

5.0.0-beta.26

Patch Changes

  • #2129 1f67999eb Thanks @benjie! - Fix bug in orderBy planning that caused a new plan to be required for every request.

  • #1985 d6102714e Thanks @hannesj! - 🚨 PostgreSQL adaptor is no longer loaded via string value; instead you must pass the adaptor instance directly. If you have adaptor: "@dataplan/pg/adaptors/pg" then replace it with adaptor: await import("@dataplan/pg/adaptors/pg"). (This shouldn't cause you issues because you should be using makePgService to construct your pgServices rather than building raw objects.)

    🚨 If you've implemented a custom PgAdaptor, talk to Benjie about how to port it. (Should be straightforward, but no point me figuring it out if no-one has done it yet 🤷)

    This change improves bundle-ability by reducing the number of dynamic imports.

    Also: PgAdaptorOptions has been renamed to PgAdaptorSettings, so please do a global find and replace for that.

  • Updated dependencies [1bd50b61e, 8bdc553b7, 4e102b1a1, 1cabbd311, 7bb1573ba, 590b6fdf5, 18addb385, d6102714e, 6ed615e55, b25cc539c, 867f33136, 925123497, cf535c210, acf99b190, 4967a197f, 1908e1ba1, 084d80be6, aa0474755]:

    • grafast@0.1.1-beta.12
    • @dataplan/pg@0.0.1-beta.23
    • graphile-build@5.0.0-beta.22

5.0.0-beta.25

Patch Changes

  • Updated dependencies [582bd768f]:
    • graphile-build@5.0.0-beta.21
    • graphile-config@0.0.1-beta.9
    • @dataplan/pg@0.0.1-beta.22
    • grafast@0.1.1-beta.11

5.0.0-beta.24

Patch Changes

  • Updated dependencies [3c161f7e1, a674a9923, b7cfeffd1]:
    • grafast@0.1.1-beta.10
    • @dataplan/pg@0.0.1-beta.21
    • graphile-build@5.0.0-beta.20

5.0.0-beta.23

Patch Changes

  • #2064 437570f97 Thanks @benjie! - Fix a bug relating to Global Object Identifiers (specifically in update mutations, but probably elsewhere too) related to early exit.
  • Updated dependencies [437570f97]:
    • grafast@0.1.1-beta.9
    • @dataplan/pg@0.0.1-beta.20
    • graphile-build@5.0.0-beta.19

5.0.0-beta.22

Patch Changes

  • #2056 1842af661 Thanks @benjie! - Improve exporting of resource options (neater export code)

  • Updated dependencies [1842af661, bd5a908a4]:

    • graphile-build@5.0.0-beta.18
    • grafast@0.1.1-beta.8
    • @dataplan/pg@0.0.1-beta.19

5.0.0-beta.21

Patch Changes

5.0.0-beta.20

Patch Changes

  • #1955 6c6be29f1 Thanks @benjie! - Steps are now prevented from calling other steps' lifecycle methods. GRAPHILE_ENV is actively encouraged, and falls back to NODE_ENV.

  • #1949 179d25b09 Thanks @benjie! - Add support for registering PgCodecs via plugins, add support for ltree type, improve error messages, no longer need to set a gather namespace to use cache/state.

  • #1958 8315e8d01 Thanks @benjie! - EXPORTABLE now accepts a third argument, nameHint, which is used to hint what variable name to use for the given value. Used this in graphile-export along with some fixes and optimizations to improve the exports further.

  • Updated dependencies [9f85c614d, 6c6be29f1, 6c80c44b7, 179d25b09, 8315e8d01, 9d53dde72, 46d8289b4]:

    • @dataplan/pg@0.0.1-beta.17
    • grafast@0.1.1-beta.6
    • graphile-build@5.0.0-beta.16
    • tamedevil@0.0.0-beta.6
    • pg-introspection@0.0.1-beta.7

5.0.0-beta.19

Patch Changes

5.0.0-beta.18

Patch Changes

5.0.0-beta.17

Patch Changes

  • Updated dependencies [0df5511ac, 7851d89ab, 470ee4000]:
    • graphile-config@0.0.1-beta.6
    • pg-introspection@0.0.1-beta.5
    • @dataplan/pg@0.0.1-beta.14
    • grafast@0.1.1-beta.3
    • graphile-build@5.0.0-beta.13

5.0.0-beta.16

Patch Changes

  • #1884 bce0636d4 Thanks @benjie! - Fixes multiple pgServices codec name conflicts by prepending the service name if it's not 'main'.

  • #1817 f305c3278 Thanks @benjie! - Add support for limiting polymorphic plans (only some of them, specifically pgUnionAll() right now) to limit the types of their results; exposed via an experimental 'only' argument on fields, for example allApplications(only: [GcpApplication, AwsApplication]) would limit the type of applications returned to only be the two specified.

  • #1875 3b558e0c1 Thanks @enisdenjo! - Consider attribute's isNotNull flag for polymorphic types

  • #1884 2ae8d33aa Thanks @benjie! - Fixes missing await which might cause process to exit when something goes wrong during schema building.

  • #1885 9e1df08b7 Thanks @benjie! - Fix orderBy:null regression

  • #1877 8a0cdb95f Thanks @benjie! - Move 'declare global' out of 'interfaces.ts' and into 'index.ts' or equivalent. Should make TypeScript more aware of these types.

  • #1879 dbd91fdd8 Thanks @benjie! - Move PgContextPlugin from graphile-build-pg into @dataplan/pg so it can be used after schema export without needing dependency on graphile-build-pg

  • #1841 f1d5ad18e Thanks @benjie! - Make smart tags parser more forgiving (track parenthesis)

  • #1884 c66c3527c Thanks @benjie! - List codecs can now have names.

  • #1876 9fb5cc06e Thanks @enisdenjo! - Specify from in @ref to apply refs to a single type

  • Updated dependencies [3fdc2bce4, aeef362b5, 8a76db07f, f305c3278, 8a0cdb95f, dbd91fdd8, c66c3527c, f66cc40b3, f18635a5c, 1c9f1c0ed]:

    • grafast@0.1.1-beta.2
    • @dataplan/pg@0.0.1-beta.13
    • graphile-build@5.0.0-beta.12
    • graphile-config@0.0.1-beta.5

5.0.0-beta.15

Patch Changes

  • #1834 2e7fc6449 Thanks @benjie! - Fix issue with watch mode where schema omits database resources in some situations.
  • Updated dependencies [49fcb0d58, 7aef73319]:
    • grafast@0.1.1-beta.1
    • graphile-config@0.0.1-beta.4
    • @dataplan/pg@0.0.1-beta.12
    • graphile-build@5.0.0-beta.11

5.0.0-beta.14

Patch Changes

  • #1801 2d447a6b4 Thanks @benjie! - Fix bug where the owner of a database object wasn't seen as having any privileges.
  • Updated dependencies [2d447a6b4]:
    • pg-introspection@0.0.1-beta.4
    • @dataplan/pg@0.0.1-beta.11

5.0.0-beta.13

Patch Changes

  • #1797 26e0bc726 Thanks @benjie! - Fix that smart tags were not copied onto enum codecs.

  • Updated dependencies [26e0bc726]:

    • @dataplan/pg@0.0.1-beta.11

5.0.0-beta.12

Patch Changes

  • Updated dependencies [2805edc68]:
    • pg-sql2@5.0.0-beta.4
    • @dataplan/pg@0.0.1-beta.10
    • grafast@0.1.1-beta.0

5.0.0-beta.11

Patch Changes

  • #1770 9a84bc6dd Thanks @benjie! - Fix issues around enum tables: indicate when an enum table codec replaces a regular attribute codec, expose helpers for working with enum tables, and don't exclude enum table references when using the Relay preset.

  • #1769 b728d7fb9 Thanks @benjie! - Fix error message when ref is used with no foreign key.

  • #1774 7d55d2c34 Thanks @benjie! - Add preset.gather.pgIdentifiers setting (values: 'qualified' or 'unqualified'); if set to 'unqualified' then we will not add the schema name to table or function identifiers - it's up to you to ensure they're present in the search_path (which you can set via pgSettings on a per-request basis).

  • Updated dependencies [4a4d26d87, b2bce88da, 861a8a306, 9a84bc6dd, b728d7fb9]:

    • grafast@0.1.1-beta.0
    • @dataplan/pg@0.0.1-beta.9
    • graphile-build@5.0.0-beta.10

5.0.0-beta.10

Patch Changes

  • #514 c9848f693 Thanks @benjie! - Update package.json repository information

  • Updated dependencies [c9848f693, ede1092fe, 566983fbd, 409bf6071]:

    • graphile-build@5.0.0-beta.9
    • pg-introspection@0.0.1-beta.3
    • graphile-config@0.0.1-beta.3
    • @dataplan/pg@0.0.1-beta.8
    • grafast@0.0.1-beta.8
    • tamedevil@0.0.0-beta.3
    • pg-sql2@5.0.0-beta.3

5.0.0-beta.9

Patch Changes

  • Updated dependencies [3700e204f]:
    • grafast@0.0.1-beta.7
    • @dataplan/pg@0.0.1-beta.7
    • graphile-build@5.0.0-beta.8

5.0.0-beta.8

Patch Changes

  • #496 c9bfd9892 Thanks @benjie! - Update dependencies (sometimes through major versions).

  • Updated dependencies [c9bfd9892, e613b476d]:

    • graphile-build@5.0.0-beta.7
    • pg-introspection@0.0.1-beta.2
    • graphile-config@0.0.1-beta.2
    • @dataplan/pg@0.0.1-beta.6
    • grafast@0.0.1-beta.6
    • tamedevil@0.0.0-beta.2
    • pg-sql2@5.0.0-beta.2

5.0.0-beta.7

Patch Changes

  • #488 e916b7412 Thanks @benjie! - Fix issues with polymorphism when interacting with nodeIds, particularly in mutations and SQL functions.

  • #488 109c8ec67 Thanks @benjie! - Add new pgTableResource helper and refactor a lot of code to use it, reducing code in many cases

  • Updated dependencies [95e902f54, 53186213a, 73f1b5218]:

    • @dataplan/pg@0.0.1-beta.5
    • grafast@0.0.1-beta.5
    • graphile-build@5.0.0-beta.6

5.0.0-beta.6

Patch Changes

  • #459 d17dd1cd4 Thanks @benjie! - Disable mutations for @interface mode:relational tables. (They shouldn't have been enabled, and they don't work yet.)

  • #464 00d026409 Thanks @benjie! - @dataplan/pg/adaptors/pg now adds rawClient property which is the underlying Postgres client for use with pgTyped, zapatos, and other libraries that can use a raw postgres client. This is exposed via NodePostgresPgClient interface which is a subtype of PgClient.

  • Updated dependencies [53f0488b1, f9cc88dc4, 00d026409]:

    • @dataplan/pg@0.0.1-beta.4
    • grafast@0.0.1-beta.4
    • graphile-build@5.0.0-beta.5

5.0.0-beta.5

Patch Changes

5.0.0-beta.4

Patch Changes

  • #454 196e5c1aa Thanks @benjie! - @interface mode=single/relational now get Node interface if the table has a PK.

    🚨 @interface mode=union no longer gets Node interface unless you also add @behavior node.

  • #454 e75bf57dd Thanks @benjie! - Automatically register connection types for unionMember unions.

  • Updated dependencies [196e5c1aa]:

    • graphile-build@5.0.0-beta.4
    • @dataplan/pg@0.0.1-beta.3

5.0.0-beta.3

Patch Changes

  • #452 d3ab4e12d Thanks @benjie! - Improve error messages with links to more details.

  • Updated dependencies [46cd08aa1, d3ab4e12d]:

    • grafast@0.0.1-beta.3
    • graphile-build@5.0.0-beta.3
    • @dataplan/pg@0.0.1-beta.3

5.0.0-beta.2

Patch Changes

  • Updated dependencies [23bd3c291]:
    • grafast@0.0.1-beta.2
    • @dataplan/pg@0.0.1-beta.2
    • graphile-build@5.0.0-beta.2

5.0.0-beta.1

Patch Changes

  • cbd987385 Thanks @benjie! - Bump all packages to beta

  • Updated dependencies [cbd987385]:

    • @dataplan/pg@0.0.1-beta.1
    • grafast@0.0.1-beta.1
    • graphile-build@5.0.0-beta.1
    • graphile-config@0.0.1-beta.1
    • pg-introspection@0.0.1-beta.1
    • pg-sql2@5.0.0-beta.1
    • tamedevil@0.0.0-beta.1

5.0.0-alpha.20

Patch Changes

  • #441 dfefdad3c Thanks @benjie! - Change bundling techniques for grafast and @dataplan/pg

  • #441 6c1c1a34f Thanks @benjie! - Introduce _allRows base inflector used by allRowsConnection and allRowsList

  • Updated dependencies [dfefdad3c]:

    • @dataplan/pg@0.0.1-alpha.17
    • grafast@0.0.1-alpha.16
    • graphile-build@5.0.0-alpha.18

5.0.0-alpha.19

Patch Changes

  • #433 5491e10b0 Thanks @benjie! - Improve error messages from custom string scalars when they cannot be parsed as a string.

  • #434 a9561d62d Thanks @benjie! - Deprecate preset.gather.pgJwtType (tuple), instead use preset.gather.pgJwtTypes which expects a string and parses it similar to the PostgreSQL parser (and also allows multiple types to be specified).

  • #433 232885703 Thanks @benjie! - Change type of pgJwtSecret and pgJwtSignOptions from any to the correct types.

  • #438 db19ed9c3 Thanks @benjie! - When using @interface mode:relational, don't add pointless relationships from concrete type back to abstract or from abstract to related concrete types.

  • #438 31e776e03 Thanks @benjie! - Fix spurious error relating to connection for @interface type:relational

  • #436 055c4e438 Thanks @benjie! - Fix inflection of computed column field names in secondary schemas when using the V5 preset. Also, use underscores instead of dashes for the serviceName/schemaName separator for the names of the function resources, so that they can be typed manually rather than having to use string properties like const { ["myService-mySchema-my_function_name"]: myFunctionResource } = pgRegistry.pgResources

  • #435 cf32f0397 Thanks @benjie! - Fix bug in listOfCodec causing wrong extensions to be used in non-deterministic manner (thanks to @jvandermey for finding the bug and helping to track it down).

  • #428 57d88b5fa Thanks @benjie! - Fix bug exporting schema, and importing schema with __assertStep.

  • #438 a22830b2f Thanks @benjie! - Plugin name now automatically used in provides for every hook, allowing ordering hooks before/after their equivalents in other plugins.

  • #428 9695c65f8 Thanks @benjie! - Optimize away some unnecessary content from graphile-exported schema

  • Updated dependencies [ea003ca3a, 5491e10b0, cf32f0397, 57d88b5fa, a22830b2f, 9f87a26b1]:

    • grafast@0.0.1-alpha.15
    • graphile-build@5.0.0-alpha.17
    • @dataplan/pg@0.0.1-alpha.16
    • graphile-config@0.0.1-alpha.7

5.0.0-alpha.18

Patch Changes

  • #421 415f436a0 Thanks @benjie! - @notNull is now respected in PgAttributesPlugin for outputs as well as inputs.

  • #421 5b8e46a8a Thanks @benjie! - Breaking for types: move Pg*Tags to GraphileBuild.Pg*Tags for easier declaration merging

  • #421 bb64c090d Thanks @benjie! - New build.pgResolveOutputType helper exported to aid plugins determining GraphQL output type from a codec (taken from PgAttributesPlugin).

5.0.0-alpha.17

Patch Changes

5.0.0-alpha.16

Patch Changes

  • Updated dependencies [d99d666fb]:
    • grafast@0.0.1-alpha.14
    • @dataplan/pg@0.0.1-alpha.15
    • graphile-build@5.0.0-alpha.15

5.0.0-alpha.15

Patch Changes

  • #417 e7dd2e039 Thanks @benjie! - codec is now baked into NodeId handlers (rather than using codecName and looking that up in codecs). All related APIs have thus simplified, e.g. the step node(codecs, handler, $id) is now node(handler, $id), etc. TypeScript should point out any issues you have hopefully.

  • #417 f115b6fb2 Thanks @benjie! - Export parseDatabaseIdentifier

  • #417 881672305 Thanks @benjie! - deepEval has been renamed to applyTransforms

  • #418 9ab2adba2 Thanks @benjie! - Overhaul peerDependencies and dependencies to try and eliminate duplicate modules error.

  • #410 4eda0cd57 Thanks @benjie! - Use a single behavior check per location.

    In the past two weeks I added a few behavior strings like array:attribute:filterBy (a scoped form of attribute:filterBy to only be used by attributes that were arrays); however I've realised that this will require plugin authors to implement all the same logic to figure out what type an attribute is in order to then see if it has the relevant behavior. This goes against the design of the behavior system, and makes plugin authors' lives harder. So I've reverted this, and instead used the entityBehaviors system to add or remove the base attribute:filterBy (etc) behavior depending on what the type of the attribute is.

  • Updated dependencies [e7dd2e039, 620f9e07e, 1882e0185, 881672305, e5012f9a1, 9ab2adba2, 47f6f018b, ff4395bfc, 502b23340, 4eda0cd57]:

    • graphile-build@5.0.0-alpha.14
    • grafast@0.0.1-alpha.13
    • @dataplan/pg@0.0.1-alpha.14

5.0.0-alpha.14

Patch Changes

  • #406 bfe5997e3 Thanks @benjie! - Ability to control via behaviors whether the record type is selectable on CRUD mutation payloads.

  • #407 9281a2d88 Thanks @benjie! - Exported version no longer uses require('../package.json') hack, instead the version number is written to a source file at versioning time. Packages now export version.

  • #406 903c04b3b Thanks @benjie! - Add filterBy and orderBy behaviors for each codec type (array, range, composite, binary, scalar) to allow simpler global customization.

  • #406 c5eceba07 Thanks @benjie! - Incorrect ordering of behaviors orderBy:array/orderBy:range fixed -> array:attribute:orderBy/range:attribute:orderBy.

  • #407 9281a2d88 Thanks @benjie! - More accurate database identifier parser used in a couple places.

  • #407 808af8af3 Thanks @benjie! - Allow marking relations as @notNull

  • #406 9f5a784c6 Thanks @benjie! - Introduce TypeScript CIF gatherConfig() to help typing the gather phase for plugins.

  • #408 2849cc3fb Thanks @benjie! - Better handle the situation where a node fetcher could not be found.

  • #406 51414d328 Thanks @benjie! - Add support for bytea datatype using new Base64EncodedBinary scalar in GraphQL.

  • #406 a298fc893 Thanks @benjie! - Fix constraint finding for polymorphism (was theoretically possible to find the wrong constraint).

  • #407 1300a9753 Thanks @benjie! - Move attribute logic from PgConditionArgumentPlugin to PgAttributesPlugin

  • #407 9281a2d88 Thanks @benjie! - Possible to set the modifier of an argument type via @arg0modifier smart tag

  • #408 dda361d11 Thanks @benjie! - Improve error messages for getInputTypeByName and getOutputTypeByName.

  • Updated dependencies [f5dd38aa3, 9281a2d88, 675b7abb9, c5050dd28, 9f5a784c6, 2849cc3fb, 8ca9425ed, 51414d328, 088d83b1d, 0d1782869, bc14d488d, dda361d11]:

    • tamedevil@0.0.0-alpha.4
    • grafast@0.0.1-alpha.12
    • graphile-build@5.0.0-alpha.13
    • @dataplan/pg@0.0.1-alpha.13
    • graphile-config@0.0.1-alpha.6
    • pg-introspection@0.0.1-alpha.4

5.0.0-alpha.13

Patch Changes

  • #402 70b2c3900 Thanks @benjie! - pgCodecAttribute behavior now uses attributeName rather than attribute spec in the callback (BREAKING)

  • #402 37d829b89 Thanks @benjie! - Ability to control whether the nodeId or regular column CRUD mutations are used

  • #402 ff91a5660 Thanks @benjie! - Added postgraphile/presets/relay preset:

    • Hides primary key columns from output schema, and includes id: ID instead
    • Hides foreign key columns from output schema, expecting you to use the relation instead
    • Hides columns that are part of the primary key from update/delete mutations (but still present for create if the column is writeable - it shouldn't be)
    • Hides columns that are part of a foreign key from CRUD mutations/filters, instead exposes the ID for the remote side of the relation
    • Does not allow ordering by individual primary key columns (though you can still order by PRIMARY_KEY_ASC/DESC)
    • Does not allow ordering by individual foreign key columns
    • Turns off the row fetchers that don't use the node ID
    • Turns off the CRUD mutations that don't use the node ID
    • Functions can now use @arg0variant nodeId to indicate the first argument (increase the 0 for other arguments) should accept a node ID (this currently only works where the argument type is a table type)
    • Removes relations from mutation payloads, these should be traversed via the record instead (they're redundant)

    Most of these changes are reversible, so for example if you really want to turn back on Query.userByUsername you can do so by adding the +connection behavior to the "unique username" constraint on the users table.

  • #402 644938276 Thanks @benjie! - Use file:// URLs in import() to fix compatibility with Windows (e.g. when loading graphile.config.mjs)

  • #402 339cb005e Thanks @benjie! - Remove relations from mutation payloads (unless using V4 preset) - they're redundant.

  • Updated dependencies [644938276, 47365f0df]:

    • graphile-build@5.0.0-alpha.12
    • graphile-config@0.0.1-alpha.5
    • @dataplan/pg@0.0.1-alpha.12
    • grafast@0.0.1-alpha.11

5.0.0-alpha.12

Patch Changes

5.0.0-alpha.11

Patch Changes

  • #349 a94f11091 Thanks @benjie! - Overhaul behavior system

    Previously the behavior system worked during the schema building process, inside the various schema hooks. So looking at the behavior of a relation might have looked like:

    GraphQLObjectType_fields_field(field, build, context) {
      const relation = context.scope.pgRelationOrWhatever;
    
      // Establish a default behavior, e.g. you might give it different default behavior
      // depending on if the remote table is in the same schema or not
      const defaultBehavior = someCondition(relation) ? "behavior_if_true" : "behavior_if_false";
    
      // Now establish the user-specified behavior for the entity, inheriting from all the
      // relevant places.
      const behavior = getBehavior([
        relation.remoteResource.codec.extensions,
        relation.remoteResource.extensions,
        relation.extensions
      ]);
    
      // Finally check this behavior string against `behavior_to_test`, being sure to apply
      // the "schema-time smart defaulting" that we established in `defaultBehavior` above.
      if (build.behavior.matches(behavior, "behavior_to_test", defaultBehavior)) {
        doTheThing();
      }

    This meant that each plugin might treat the behavior of the entity different - for example postgraphile-plugin-connection-filter might have a different someCondition() under which the "filter" behavior would apply by default, whereas the built in condition plugin might have a different one.

    Moreover, each place needs to know to call getBehavior with the same list of extension sources in the same order, otherwise subtle (or not so subtle) differences in the schema would occur.

    And finally, because each entity doesn't have an established behavior, you can't ask "what's the final behavior for this entity" because it's dynamic, depending on which plugin is viewing it.

    This update fixes all of this; now each entity has a single behavior that's established once. Each plugin can register entityBehaviors for the various behavior entity types (or global behaviors which apply to all entity types if that makes more sense). So the hook code equivalent to the above would now be more like:

    GraphQLObjectType_fields_field(field, build, context) {
      const relation = context.scope.pgRelationOrWhatever;
      // Do the thing if the relation has the given behavior. Simples.
      if (build.behavior.pgCodecRelationMatches(relation, "behavior_to_test")) {
        doTheThing();
      }

    This code is much more to the point, much easier for plugin authors to implement, and also a lot easier to debug since everything has a single established behavior now (except refs, which aren't really an entity in their own right, but a combination of entities...).

    These changes haven't changed any of the schemas in the test suite, but they may impact you. This could be a breaking change - so be sure to do a schema diff before/after this.

  • #355 1fe47a2b0 Thanks @benjie! - MAJOR BREAKING CHANGE: implicit application of args/input fields has been removed.

    Previously we would track the fieldArgs that you accessed (via .get(), .getRaw() or .apply()) and those that you did not access would automatically have their applyPlan called, if they had one. This isn't likely to be particularly useful for pure Grafast users (unless they want to adopt this pattern) but it's extremely useful for plugin-based schemas as it allows plugins to add arguments that can influence their field's plan without having to wrap the field's plan resolver function. This is fairly critical, otherwise each behavior added (first:, condition:, orderBy:, filter:, ignoreArchived:, etc etc) would wrap the plan resolver with another function layer, and they would get messy.

    However, implicit is rarely good. And it turns out that it severely limited what I wanted to do for improving the fieldArgs APIs.

    I decided to remove this implicit functionality by making it more explicit, so now args/input fields can specify the relevant autoApplyAfterParent{Plan,SubscribePlan,InputPlan,ApplyPlan}: true property and we'll only apply them at a single level.

    From a user perspective, little has changed. From a plugin author perspective, if you were relying on the implicit applyPlan then you should now add the relevant autoApply* property next to your applyPlan method.

  • #363 bcfffd5fe Thanks @benjie! - Fix bug causing @foreignKey relation to not show up under rare circumstances (by updating PgRelationsPlugin to use codec, not resource, as the primary entity).

  • #362 e443db39b Thanks @benjie! - Use original case for table resource names.

  • Updated dependencies [339fe20d0, 56237691b, ed1982f31, a94f11091, 1fe47a2b0, 198ac74d5, 6878c589c, 2ac706f18, 77e011294, dad4d4aae, e443db39b]:

    • tamedevil@0.0.0-alpha.3
    • pg-sql2@5.0.0-alpha.3
    • grafast@0.0.1-alpha.9
    • graphile-build@5.0.0-alpha.10
    • graphile-config@0.0.1-alpha.4
    • @dataplan/pg@0.0.1-alpha.10

5.0.0-alpha.10

Patch Changes

  • Updated dependencies [dd3ef599c]:
    • grafast@0.0.1-alpha.8
    • @dataplan/pg@0.0.1-alpha.9
    • graphile-build@5.0.0-alpha.9

5.0.0-alpha.9

Patch Changes

5.0.0-alpha.8

Patch Changes

5.0.0-alpha.7

Patch Changes

5.0.0-alpha.6

Patch Changes

5.0.0-alpha.5

Patch Changes

  • Updated dependencies [45dcf3a8f, f34bd5a3c]:
    • grafast@0.0.1-alpha.4
    • @dataplan/pg@0.0.1-alpha.4
    • graphile-build@5.0.0-alpha.5

5.0.0-alpha.4

Patch Changes

  • #332 faa1c9eaa Thanks @benjie! - Adjust dependencies and peerDependencies and peerDependenciesMeta.

  • Updated dependencies [faa1c9eaa]:

    • graphile-build@5.0.0-alpha.4
    • @dataplan/pg@0.0.1-alpha.3

5.0.0-alpha.3

Patch Changes

  • 7f857950a Thanks @benjie! - Upgrade to the latest TypeScript/tslib

  • 9605165d5 Thanks @benjie! - Fix naming conflict that occurs with @enum smart tag when not using @enumName. New enumTableEnum inflector.

  • Updated dependencies [21e95326d, 87e6c65a7, 2389f47ec, 82cc01152, e91ee201d, 865bec590, 7f857950a, d39a5d409]:

    • graphile-export@0.0.2-alpha.2
    • tamedevil@0.0.0-alpha.2
    • grafast@0.0.1-alpha.3
    • pg-sql2@5.0.0-alpha.2
    • @dataplan/pg@0.0.1-alpha.3
    • graphile-build@5.0.0-alpha.3
    • graphile-config@0.0.1-alpha.2
    • pg-introspection@0.0.1-alpha.2

5.0.0-alpha.2

Patch Changes

  • Updated dependencies [3df3f1726]:
    • grafast@0.0.1-alpha.2
    • @dataplan/pg@0.0.1-alpha.2
    • graphile-build@5.0.0-alpha.2

5.0.0-alpha.1

Patch Changes

5.0.0-1.3

Patch Changes

  • #297 b4eaf89f4 Thanks @benjie! - AsyncHooks can now execute synchronously if all registered hooks are synchronous. May impact ordering of fields/types in GraphQL schema.
  • Updated dependencies [8d270ead3, b4eaf89f4]:
    • grafast@0.0.1-1.3
    • graphile-config@0.0.1-1.2
    • @dataplan/pg@0.0.1-1.3
    • graphile-build@5.0.0-1.3

5.0.0-1.2

Patch Changes

  • Updated dependencies [7dcb0e008]:
    • grafast@0.0.1-1.2
    • @dataplan/pg@0.0.1-1.2
    • graphile-build@5.0.0-1.2

5.0.0-1.1

Patch Changes

  • #279 2df36c5a1 Thanks @benjie! - description moved out of extensions to live directly on all the relevant entities.

  • #287 c5d89d705 Thanks @benjie! - Fix the type definition of GatherHooks to allow plugins to indicate individual gather hook ordering.

  • #279 a73f9c709 Thanks @benjie! - PgConnectionArgFirstLastBeforeAfterPlugin is now PgFirstLastBeforeAfterArgsPlugin (because it applies to lists as well as connections). PgInsertStep/pgInsert()/PgUpdateStep/pgUpdate()/PgDeleteStep/pgDelete() are now PgInsertSingleStep/pgInsertSingle()/PgUpdateSingleStep/pgUpdateSingle()/PgDeleteSingleStep/pgDeleteSingle() (to make space to add a future bulk API if we want to). config.schema.orderByNullsLast is now config.schema.pgOrderByNullsLast for consistency (V4 preset users are unaffected). Lots of field scopes in graphile-build-pg have been updated to incorporate field into their names.

  • #260 d5312e6b9 Thanks @benjie! - TypeScript v5 is now required

  • #259 c22dcde7b Thanks @benjie! - Renamed recordType codec factory to recordCodec. recordCodec() now only accepts a single object argument. Renamed enumType codec factory to enumCodec. enumCodec() now only accepts a single object argument. Rename listOfType to listOfCodec.

    Massive overhaul of PgTypeCodec, PgTypeColumn and PgTypeColumns generics - types should be passed through much deeper now, but if you reference any of these types directly you'll need to update your code.

  • #285 bd37be707 Thanks @benjie! - Single table inheritance no longer exposes non-shared columns via condition/order, and also only exposes the relationships on the types where they are appropriate.

  • #260 96b0bd14e Thanks @benjie! - PgSource has been renamed to PgResource, PgTypeCodec to PgCodec, PgEnumTypeCodec to PgEnumCodec, PgTypeColumn to PgCodecAttribute (and similar for related types/interfaces). source has been replaced by resource in various of the APIs where it relates to a PgResource.

    PgSourceBuilder is no more, instead being replaced with PgResourceOptions and being built into the final PgResource via the new makeRegistryBuilder/makeRegistry functions.

    build.input no longer contains the pgSources directly, instead build.input.pgRegistry.pgResources should be used.

    The new registry system also means that various of the hooks in the gather phase have been renamed/replaced, there's a new PgRegistryPlugin plugin in the default preset. The only plugin that uses the main method in the gather phase is now PgRegistryPlugin - if you are using the main function for Postgres-related behaviors you should consider moving your logic to hooks instead.

    Plugin ordering has changed and thus the shape of the final schema is likely to change (please use lexicographicSortSchema on your before/after schemas when comparing).

    Relationships are now from a codec to a resource, rather than from resource to resource, so all the relationship inflectors (singleRelation, singleRelationBackwards, _manyRelation, manyRelationConnection, manyRelationList) now accept different parameters ({registry, codec, relationName} instead of {source, relationaName}).

    Significant type overhaul, most generic types no longer require generics to be explicitly passed in many circumstances. PgSelectStep, PgSelectSingleStep, PgInsertStep, PgUpdateStep and PgDeleteStep now all accept the resource as their single type parameter rather than accepting the 4 generics they did previously. PgClassExpressionStep now accepts just a codec and a resource as generics. PgResource and PgCodec have gained a new TName extends string generic at the very front that is used by the registry system to massively improve continuity of the types through all the various APIs.

    Fixed various issues in schema exporting, and detect more potential issues/oversights automatically.

    Fixes an RBAC bug when using superuser role for introspection.

  • #271 d951897ee Thanks @benjie! - Add extensions.pg to Postgres function resources (makes it easier for plugins to hook them).

  • #286 366b166dc Thanks @benjie! - Add detection for @ref that is missing singular, fix docs and test schema and add tests for same.

  • #271 261eb520b Thanks @benjie! - 🚨 RENAME ALL THE THINGS

    The term 'source' was overloaded, and 'configs' was too vague, and 'databaseName' was misleading, and 'source' behaviours actually applied to resources, and more. So, we've renamed lots of things as part of the API stabilization work. You're probably only affected by the first 2 bullet points.

    • pgConfigs -> pgServices (also applies to related pgConfig terms such as makePgConfig -> makePgService, MakePgConfigOptions -> MakePgServiceOptions, etc) - see your graphile.config.ts or equivalent file
    • All *:source:* behaviors are now *:resource:* behaviors (use regexp /:source\b|\bsource:[a-z$]/ to find the places that need updating)
    • PgDatabaseConfiguration -> PgServiceConfiguration
    • databaseName -> serviceName (because it's not the name of the database, it's the name of the pgServices (which was pgConfigs) entry)
    • PgResourceConfig::source -> PgResourceConfig.from ('source' is overloaded, so use a more direct term)
    • PgResource::source -> PgResource.from
    • PgSelectPlanJoin::source -> PgSelectPlanJoin.from
    • helpers.pgIntrospection.getDatabase -> helpers.pgIntrospection.getService
    • helpers.pgIntrospection.getExecutorForDatabase -> helpers.pgIntrospection.getExecutorForService
  • #268 a14cf5f4c Thanks @benjie! - PgV4NoIgnoreIndexesPlugin is now PgIndexBehaviorsPlugin, moved to graphile-build-pg, and is enabled by default

  • Updated dependencies [2df36c5a1, c5d89d705, a73f9c709, ae304b33c, ef42d717c, d5312e6b9, 22ec50e36, 0f4709356, c22dcde7b, bd37be707, f8954fb17, 96b0bd14e, f93c79b94, fbf1da26a, 53e164cbc, c564825f3, 261eb520b, 395b4a2dd]:

    • @dataplan/pg@0.0.1-1.1
    • graphile-build@5.0.0-1.1
    • grafast@0.0.1-1.1
    • pg-introspection@0.0.1-1.1
    • graphile-config@0.0.1-1.1
    • graphile-export@0.0.2-1.1
    • tamedevil@0.0.0-1.1
    • pg-sql2@5.0.0-1.1

5.0.0-0.34

Patch Changes

  • #257 89d16c972 Thanks @benjie! - PgClassSinglePlan is now enforced, users will be informed if plans return a step incompatible with the given GraphQL object type.
  • Updated dependencies [89d16c972, 8f323bdc8, 9e7183c02, fce77f40e]:
    • grafast@0.0.1-0.23
    • pg-sql2@5.0.0-0.4
    • @dataplan/pg@0.0.1-0.28
    • graphile-build@5.0.0-0.29

5.0.0-0.33

Patch Changes

  • #233 a50bc5be4 Thanks @benjie! - Introduce new GraphQLObjectType_fields_field_args_arg and GraphQLInterfaceType_fields_field_args_arg hooks to resolve some plugin ordering issues.

  • #233 11e7c12c5 Thanks @benjie! - Solve mutation issue in plugin ordering code which lead to heisenbugs.

  • #233 2f50a633a Thanks @benjie! - Fix a bug where plugin ordering could result in update mutations not being created.

  • #233 005e5cea0 Thanks @benjie! - Eradicate PgSmartCommentsPlugin, it is no longer needed. Solves some plugin ordering issues.

  • Updated dependencies [a50bc5be4, 6fb7ef449, 11e7c12c5]:

    • graphile-build@5.0.0-0.28
    • graphile-config@0.0.1-0.6
    • grafast@0.0.1-0.22
    • @dataplan/pg@0.0.1-0.27

5.0.0-0.32

Patch Changes

  • #229 13cfc7501 Thanks @benjie! - pgConfig.listen is no more; it was redundant versus PgSubscriber. Have migrated PgIntrospectionPlugin to use PgSubscriber instead.

  • #229 ac6137bb6 Thanks @benjie! - 🚨 PgRBACPlugin is now included in the default graphile-build-pg (and thus PostGraphile amber) preset. Users of the V4 preset are unaffected.

  • Updated dependencies [f5a04cf66, 13cfc7501, b9a2236d4]:

    • grafast@0.0.1-0.21
    • @dataplan/pg@0.0.1-0.26
    • graphile-build@5.0.0-0.27

5.0.0-0.31

Patch Changes

  • Updated dependencies [aac8732f9]:
    • grafast@0.0.1-0.20
    • @dataplan/pg@0.0.1-0.25
    • graphile-build@5.0.0-0.26

5.0.0-0.30

Patch Changes

  • Updated dependencies [397e8bb40]:
    • grafast@0.0.1-0.19
    • @dataplan/pg@0.0.1-0.24
    • graphile-build@5.0.0-0.25

5.0.0-0.29

Patch Changes

5.0.0-0.28

Patch Changes

  • #218 f2c1423fb Thanks @benjie! - Option for @foreignKey smart tag to have unique auto-created for it to ease transition from V4: { gather: { pgFakeConstraintsAutofixForeignKeyUniqueness: true } }

  • #219 b58f5dfac Thanks @benjie! - Rename GraphileBuild.GraphileBuildGatherOptions to GraphileBuild.GatherOptions. Rename GraphileBuild.GraphileBuildInflectionOptions to GraphileBuild.InflectionOptions.

  • Updated dependencies [b58f5dfac]:

    • graphile-build@5.0.0-0.23

5.0.0-0.27

Patch Changes

  • Updated dependencies [f48860d4f]:
    • grafast@0.0.1-0.17
    • graphile-build@5.0.0-0.22
    • @dataplan/pg@0.0.1-0.22

5.0.0-0.26

Patch Changes

  • #214 3ed7d3349 Thanks @benjie! - @uniqueKey smart tag now converted via V4 preset to @unique.

  • Updated dependencies [7e3bfef04, df89aba52]:

    • @dataplan/pg@0.0.1-0.21
    • grafast@0.0.1-0.16
    • graphile-build@5.0.0-0.21

5.0.0-0.25

Patch Changes

  • a8d26b30a - ignoreReplaceIfNotExists now truly ignores replacement inflectors. Better handle disabled NodePlugin.

5.0.0-0.24

Patch Changes

  • 5812ad277 - Deal better with NodePlugin being disabled.

5.0.0-0.23

Patch Changes

  • #210 2fb5001b4 Thanks @benjie! - retryOnInitFail implemented, and bug in introspection cache on error resolved.

  • #210 2bd4b619e Thanks @benjie! - Add extensions.pg = { databaseName, schemaName, name } to various DB-derived resources (codecs, sources, etc); this replaces the originalName temporary solution that we had previously.

  • #210 b523118fe Thanks @benjie! - Replace BaseGraphQLContext with Grafast.Context throughout.

  • Updated dependencies [2fb5001b4, 2bd4b619e, b523118fe]:

    • graphile-build@5.0.0-0.20
    • @dataplan/pg@0.0.1-0.20
    • grafast@0.0.1-0.15

5.0.0-0.22

Patch Changes

5.0.0-0.21

Patch Changes

  • Updated dependencies [a14bd2288, dca706ad9]:
    • @dataplan/pg@0.0.1-0.18
    • graphile-build@5.0.0-0.18

5.0.0-0.20

Patch Changes

  • Updated dependencies [e5b664b6f]:
    • @dataplan/pg@0.0.1-0.17
    • grafast@0.0.1-0.13
    • graphile-build@5.0.0-0.17

5.0.0-0.19

Patch Changes

5.0.0-0.18

Patch Changes

  • 0ab95d0b1 - Update sponsors.

  • #190 652cf1073 Thanks @benjie! - 🚨 Breaking changes around types and postgres configuration:

    • GraphileBuild.GraphileResolverContext renamed to Grafast.Context
    • GraphileConfig.GraphQLRequestContext renamed to Grafast.RequestContext
    • Grafast.PgDatabaseAdaptorOptions renaed to GraphileConfig.PgDatabaseAdaptorOptions
    • @dataplan/pg/adaptors/node-postgres is now @dataplan/pg/adaptors/pg due to the bizarre naming of PostgreSQL clients on npm - we've decided to use the module name as the unique identifier
    • makePgConfigs:
      • is now makePgConfig (singular) - so you'll need to wrap it in an array where you use it
      • no longer exported by @dataplan/pg (because it depended on pg) - instead each adaptor exposes this helper - so import from @dataplan/pg/adaptors/node-postgres
      • accepts an object parameter containing {connectionString, schemas, superuserConnectionString}, rather than multiple string parameters
    • makeNodePostgresWithPgClient -> makePgAdaptorWithPgClient
    • postgraphile CLI will now try and respect the adaptor stated in your preset when overriding connection arguments
    • Removed Grafast.RequestContext.httpRequest and instead use Grafast.RequestContext.node.req/res; all server adaptors should implement this if appropriate
  • #192 80091a8e0 Thanks @benjie! - - Conflicts in pgConfigs (e.g. multiple sources using the same 'name') now detected and output

    • Fix defaults for pgSettingsKey and withPgClientKey based on config name
    • makePgConfig now allows passing pgSettings callback and pgSettingsForIntrospection config object
    • Multiple postgres sources now works nicely with multiple makePgConfig calls
  • Updated dependencies [0ab95d0b1, af9bc38c8, 4783bdd7c, 652cf1073, 80091a8e0]:

    • @dataplan/pg@0.0.1-0.15
    • grafast@0.0.1-0.11
    • graphile-build@5.0.0-0.15
    • graphile-config@0.0.1-0.5
    • pg-introspection@0.0.1-0.3
    • pg-sql2@5.0.0-0.3
    • tamedevil@0.0.0-0.4

5.0.0-0.17

Patch Changes

  • 72bf5f535 - Overhaul the behavior system (see https://postgraphile.org/postgraphile/next/behavior).

    • Adds schema.defaultBehavior configuration option to save having to write a plugin for such a simple task
    • Changes a bunch of behavior strings:
      • (query|singularRelation|manyRelation|queryField|typeField):(list|connection|single) -> $1:source:$2 (e.g. query:list -> query:source:list)
    • Checks for more specific behaviors, e.g. source:update or constraint:source:update or attribute:update rather than just update
    • Updates every change to getBehavior so that it follows the relevant chain (e.g. codec -> source -> relation for relations, similar for other types)
    • More helpful error message when -insert prevents functions with input arguments working
    • Throw an error if you try and use "create" scope (because we use insert/update/delete not create/update/delete)
  • Updated dependencies [72bf5f535]:

    • graphile-build@5.0.0-0.14

5.0.0-0.16

Patch Changes

  • Updated dependencies [842f6ccbb]:
    • graphile-config@0.0.1-0.4
    • grafast@0.0.1-0.10
    • graphile-build@5.0.0-0.13
    • @dataplan/pg@0.0.1-0.14

5.0.0-0.15

Patch Changes

  • #183 ebb24895c Thanks @benjie! - Fix bug when handling stable void functions

  • #181 d3cba220c Thanks @benjie! - *FieldName smart tags are now used verbatim rather than being piped through inflection.camelCase(...) - you've explicitly stated a 'field name' so we should use that. This may be a breaking change for you if your field names are currently different before/after they are camelCase'd.

  • #183 3eb9da95e Thanks @benjie! - Fix potential construction loop on failure to construct a type

  • Updated dependencies [3eb9da95e]:

    • graphile-build@5.0.0-0.12

5.0.0-0.14

Patch Changes

  • #178 1b040b3ba Thanks @benjie! - @omit and similar smart tags are now processed on @foreignKey and other fake constraints.

  • #177 6be68a53e Thanks @benjie! - @foreignFieldName smart tag is now fed into the inflection.connectionField(...) or inflection.listField(...) inflector as appropriate. If you are using @foreignSimpleFieldName you may be able to delete that now; alternatively you should consider renaming @foreignFieldName to @foreignConnectionFieldName for consistency.

  • #176 11d6be65e Thanks @benjie! - Fix issue with plugin versioning. Add more TSDoc comments. New getTerminalWidth() helper.

  • Updated dependencies [19e2961de, 11d6be65e]:

    • graphile-config@0.0.1-0.3
    • grafast@0.0.1-0.9
    • graphile-build@5.0.0-0.11
    • @dataplan/pg@0.0.1-0.13

5.0.0-0.13

Patch Changes

  • Updated dependencies [208166269]:
    • grafast@0.0.1-0.8
    • @dataplan/pg@0.0.1-0.12
    • graphile-build@5.0.0-0.10

5.0.0-0.12

Patch Changes

  • af9f11f28 Thanks @benjie! - 'preset.pgSources' renamed to 'preset.pgConfigs' to avoid confusion with PgSource class and 'input.pgSources' used for build.

  • 6ebe3a13e Thanks @benjie! - Enable omitting update/delete mutations using behaviors on unique constraints.

  • 0e440a862 Thanks @benjie! - Add new --superuser-connection option to allow installing watch fixtures as superuser.

  • Updated dependencies [6ebe3a13e, 0e440a862]:

    • graphile-build@5.0.0-0.9
    • @dataplan/pg@0.0.1-0.11

5.0.0-0.11

Patch Changes

  • 677c8f5fc - Create new getTags() introspection helper and use it. Rename GraphileBuild.GraphileBuildSchemaOptions to GraphileBuild.SchemaOptions. Fix a couple minor inflection bugs. Add some missing descriptions. Fix the initial inflection types to not leak implementation details. Fix inflectors to use ResolvedPreset rather than Preset.
  • Updated dependencies [4ca7fce12, 677c8f5fc]:
    • tamedevil@0.0.0-0.3
    • graphile-build@5.0.0-0.8
    • pg-introspection@0.0.1-0.2
    • grafast@0.0.1-0.7
    • @dataplan/pg@0.0.1-0.10

5.0.0-0.10

Patch Changes

  • Updated dependencies [c4213e91d]:
    • @dataplan/pg@0.0.1-0.9

5.0.0-0.9

Patch Changes

  • 9b296ba54 - More secure, more compatible, and lots of fixes across the monorepo

  • Updated dependencies [9b296ba54]:

    • @dataplan/pg@0.0.1-0.8
    • grafast@0.0.1-0.6
    • graphile-build@5.0.0-0.7
    • graphile-config@0.0.1-0.2
    • pg-introspection@0.0.1-0.1
    • pg-sql2@5.0.0-0.2
    • tamedevil@0.0.0-0.2

5.0.0-0.8

Patch Changes

  • cd37fd02a - Introduce new tamedevil package for managing JIT code

  • Updated dependencies [cd37fd02a]:

    • grafast@0.0.1-0.5
    • tamedevil@0.0.0-0.1
    • @dataplan/pg@0.0.1-0.7
    • graphile-build@5.0.0-0.6

5.0.0-0.7

Patch Changes

  • Updated dependencies [768f32681]:
    • @dataplan/pg@0.0.1-0.6
    • grafast@0.0.1-0.4
    • graphile-build@5.0.0-0.5
    • graphile-export@0.0.2-0.4

5.0.0-0.6

Patch Changes

  • Updated dependencies [9ebe3d860]:
    • @dataplan/pg@0.0.1-0.5

5.0.0-0.5

Patch Changes

  • Updated dependencies [bf83f591d]:
    • @dataplan/pg@0.0.1-0.4

5.0.0-0.4

Patch Changes

  • d11c1911c - Fix dependencies

  • Updated dependencies [d11c1911c]:

    • @dataplan/pg@0.0.1-0.3
    • grafast@0.0.1-0.3
    • graphile-build@5.0.0-0.4
    • graphile-config@0.0.1-0.1
    • graphile-export@0.0.2-0.3

5.0.0-0.3

Patch Changes

  • Updated dependencies [25037fc15]:
    • @dataplan/pg@0.0.1-0.2
    • grafast@0.0.1-0.2
    • graphile-build@5.0.0-0.3
    • graphile-export@0.0.2-0.2

5.0.0-0.2

Patch Changes

  • Updated dependencies [55f15cf35]:
    • @dataplan/pg@0.0.1-0.1
    • grafast@0.0.1-0.1
    • graphile-build@5.0.0-0.2
    • graphile-export@0.0.2-0.1

5.0.0-0.1

Patch Changes

  • #125 91f2256b3 Thanks @benjie! - Initial changesets release

  • Updated dependencies [91f2256b3]:

    • @dataplan/pg@0.0.1-0.0
    • grafast@0.0.1-0.0
    • graphile-build@5.0.0-0.1
    • graphile-config@0.0.1-0.0
    • graphile-export@0.0.2-0.0
    • pg-introspection@0.0.1-0.0