graphql

A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations.

APACHE-2.0 License

Downloads
80K
Stars
503
Committers
61

Bot releases are hidden (Show)

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Major Changes

  • #3673 aa11d5251 Thanks @darrellwarde! - Programmatic toggling of debug logging is now done using the debug option of the constructor.

  • #3645 7df67be49 Thanks @darrellwarde! - The minimum version of neo4j-driver is now 5.8.0, please upgrade. The boomkark field in the selection set has been marked as deprecated and will be removed in version 5.0.0 of the library.

  • #3671 b3951fa81 Thanks @darrellwarde! - Remove nodes from the public API of the OGM class.

  • #3687 1ad4328e4 Thanks @darrellwarde! - Validation of type definitions is now configured using the validate boolean option in the constructor, which defaults to true.

  • #2598 257aa4c97 Thanks @darrellwarde! - Remove all arguments from IExecutableSchemaDefinition apart from typeDefs and resolvers. This is to simplify the API and to remove any unexpected behaviours from arguments which we blindly pass through.

  • #3674 59e369992 Thanks @darrellwarde! - cypherQueryOptions moved into context-only, as a per-request option.

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Major Changes

  • #2834 8d3aff007 Thanks @a-alle! - Deprecated @node directive arguments label and additionalLabels have been removed. Please use the labels argument.
graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Major Changes

  • #3062 ea1bae3c3 Thanks @mjfwebb! - The deprecated @callback directive has been removed. Any remaining usages of @callback should be replaced with @populatedBy. See https://github.com/neo4j/graphql/blob/dev/docs/modules/ROOT/pages/guides/v4-migration/index.adoc#callback-renamed-to-populatedby for more information.

  • #3013 0fb2592b4 Thanks @darrellwarde! - Remove aggregation fields for relationships to a single node (non-List relationships) - these serve no functional utility

  • #2863 c9ee9e757 Thanks @darrellwarde! - Support for Neo4j database 4.3 has been dropped. Please use the current Neo4j 5 release, or the LTS 4.4 release.

  • #2996 4a78e7a8d Thanks @mjfwebb! - Aliased properties are now automatically escaped using backticks. If you were using backticks in the property argument of your @alias directives, these should now be removed.

  • #2834 8d3aff007 Thanks @a-alle! - Deprecated @node directive arguments label and additionalLabels have been removed. Please use the labels argument.

  • #3671 b3951fa81 Thanks @darrellwarde! - Remove nodes and relationships from the public API of the Neo4jGraphQL class.

  • #3628 2167c9ac1 Thanks @darrellwarde! - Specifying Cypher query options to be used is now cypherQueryOptions instead of just queryOptions, and each option accepts a simple string rather than an enum.

  • #3242 29d68ad51 Thanks @angrykoala! - Escape properties and relationships if needed, using | and & as part of the label is no longer supported

  • #3043 15a7f0418 Thanks @mjfwebb! - It was possible to define schemas with types that have multiple relationship fields connected by the same type of relationships. Instances of this scenario are now detected during schema generation and an error is thrown so developers are informed to remedy the type definitions.

    An example of what is now considered invalid with these checks:

    type Team {
        player1: Person! @relationship(type: "PLAYS_IN", direction: IN)
        player2: Person! @relationship(type: "PLAYS_IN", direction: IN)
        backupPlayers: [Person!]! @relationship(type: "PLAYS_IN", direction: IN)
    }
    
    type Person {
        teams: [Team!]! @relationship(type: "PLAYS_IN", direction: OUT)
    }
    

    For more information about this change and how to disable this validation please see the 4.0.0 migration guide

  • #2818 93b9d806b Thanks @a-alle! - Removed deprecated argument plural from @node directive. Please use the @plural directive instead.

  • #3670 d4aea32c6 Thanks @darrellwarde! - Removal of the following exports: Neo4jGraphQLAuthenticationError, Neo4jGraphQLForbiddenError, EventMeta, Neo4jGraphQLAuthPlugin and RelationField. This are either redundant, or internals which shouldn't have been exported.

  • #3679 5ea18136e Thanks @darrellwarde! - Remove unused DeleteInfo, GraphQLSortArg, GraphQLOptionsArg and GraphQLWhereArg type exports.

  • #3673 aa11d5251 Thanks @darrellwarde! - Programmatic toggling of debug logging is now done using the debug option of the constructor.

  • #3234 f1225baa7 Thanks @angrykoala! - Change subscriptions setup, this requires changes to constructor options passed to Neo4jGraphQL. See https://neo4j.com/docs/graphql-manual/current/guides/v4-migration/#subscriptions-options

    For single instance subscriptions use true:

    const neoSchema = new Neo4jGraphQL({
        typeDefs,
        features: {
            subscriptions: true,
        },
    });
    

    For any other engine, pass it features.subscriptions:

    const neoSchema = new Neo4jGraphQL({
        typeDefs,
        features: {
            subscriptions: subscriptionEngine,
        },
    });
    
  • #3645 7df67be49 Thanks @darrellwarde! - The minimum version of neo4j-driver is now 5.8.0, please upgrade. The bookmark field in the selection set has been marked as deprecated and will be removed in version 5.0.0 of the library.

  • #2922 7743399d3 Thanks @Liam-Doodson! - The requires argument of the @customResolver directive now accepts a graphql selection set. This means it is now possible to require non-scalar fields such as related types.

  • #2769 e5b53a597 Thanks @angrykoala! - @cypher directive now requires the parameter columnName.

    This requires all cypher queries to be made with a valid alias that must be referred in this new parameter.

    For Example:

    @neo4j/graphql@3

    @cypher(statement: "MATCH (i:Item) WHERE i.public=true RETURN i.name")
    

    @neo4j/graphql@4

    @cypher(statement: "MATCH (i:Item) WHERE i.public=true RETURN i.name as result", columnName: "result")
    
  • #3630 3896544b5 Thanks @darrellwarde! - neo4jDatabaseInfo has been removed from the context. It is our belief that this has little utility in the library. If you regularly use different drivers connected to different versions of Neo4j and require this feature, please raise an issue: https://github.com/neo4j/graphql/issues/new/choose

  • #2944 8f0656b35 Thanks @Liam-Doodson! - Made @relationshipProperties mandatory for relationship property interfaces

  • #3099 c9f35f10c Thanks @mjfwebb! - config.callbacks has been deprecated and replaced with features.populatedBy.callbacks. See https://neo4j.com/docs/graphql-manual/current/guides/v4-migration/#_callback_renamed_to_populatedby for more information.

  • #3687 1ad4328e4 Thanks @darrellwarde! - Validation of type definitions is now configured using the validate boolean option in the constructor, which defaults to true.

  • #2819 2ab3d5212 Thanks @a-alle! - Removed @computed directive. Please use @customResolver instead.

  • #2598 257aa4c97 Thanks @darrellwarde! - Remove all arguments from IExecutableSchemaDefinition apart from typeDefs and resolvers. This is to simplify the API and to remove any unexpected behaviours from arguments which the library blindly passes through.

  • #3653 5b5f08ce7 Thanks @angrykoala! - All labels and field names are escaped if needed in the generated Cypher

  • #3097 9f5a44545 Thanks @mjfwebb! - enableRegex has been removed and replaced with MATCHES filters in the features configuration object. See the migration guide for more information: https://neo4j.com/docs/graphql-manual/current/guides/v4-migration

  • #2955 9f3a9374e Thanks @mjfwebb! - Relationship type strings are now automatically escaped if needed using backticks. If you were using backticks in the type argument of your @relationship directives, these should now be removed to avoid backticks being added into your relationship type labels.

  • #3674 59e369992 Thanks @darrellwarde! - cypherQueryOptions moved into context-only, as a per-request option.

Minor Changes

  • #3661 ce84c47cc Thanks @darrellwarde! - The evaluation of authorization rules is now supported when using the Neo4j GraphQL Library as a Federation Subgraph.
graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Minor Changes

  • #3639 09cc28ef2 Thanks @darrellwarde! - Encourages switching from driverConfig to sessionConfig in both constructor and context. Can be used to switch database, and to use impersonation and user switching.

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Minor Changes

  • #3639 09cc28ef2 Thanks @darrellwarde! - Encourages switching from driverConfig to sessionConfig in both constructor and context. Can be used to switch database, and to use impersonation and user switching.

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Minor Changes

  • #3581 775fdea1d Thanks @ID!! - This release includes the addition of three new directives for authentication and authorization:

    The @authentication directive is used to configure authentication checks at either the schema, object or field level:

    type Post @authentication(operations: [CREATE]) {
        content: String!
    }
    

    The @authorization directive is used to configure fine-grained authorization against node properties:

    type User @authorization(validate: [{ where: { node: { id: "$jwt.sub" } } }]) {
        id: ID!
    }
    

    The @subscriptionsAuthorization directive is used to configure fine-grained authorization specifically for Subscriptions events:

    type Post @subscriptionsAuthorization(filter: [{ where: { node: { author: "$jwt.sub" } } }]) {
        likes: Int!
    }
    

    These three directives supersede the @auth directive, which will be removed in version 4.0.0 of the Neo4j GraphQL Library.

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Minor Changes

  • #3581 775fdea1d Thanks @darrellwarde!! - This release includes the addition of three new directives for authentication and authorization:

    The @authentication directive is used to configure authentication checks at either the schema, object or field level:

    type Post @authentication(operations: [CREATE]) {
        content: String!
    }
    

    The @authorization directive is used to configure fine-grained authorization against node properties:

    type User @authorization(validate: [{ where: { node: { id: "$jwt.sub" } } }]) {
        id: ID!
    }
    

    The @subscriptionsAuthorization directive is used to configure fine-grained authorization specifically for Subscriptions events:

    type Post @subscriptionsAuthorization(filter: [{ where: { node: { author: "$jwt.sub" } } }]) {
        likes: Int!
    }
    

    These three directives supersede the @auth directive, which will be removed in version 4.0.0 of the Neo4j GraphQL Library. Please see the migration guide to learn how to upgrade today.

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Patch Changes

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Minor Changes

  • #3509 cc201e6fc Thanks @MacondoExpress! - Introduced schema configuration directive: @filterable.

    Usage:

    type User {
        name: String @filterable(byValue: true, byAggregate: true)
    }
    

Patch Changes

  • #3542 f779a0061 Thanks @Liam-Doodson! - Fixed #3541 which caused an error when using @key and other directives on the same type

  • #3538 56a733023 Thanks @Liam-Doodson! - Fixed #3537 which prevented extending the schema with @neo4j/graphql directives when calling getSubgraphSchema()

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Major Changes

  • #3520 ecb370f9d Thanks @tbwiss! - feat: Toolbox - major version bump to version 2.0.0

    A high-level overview of changes made:

    • All the editors are now powered by CodeMirror version 6 and support all the features and functions from the previous version.
    • On the query editor page we've introduced tabs to store several queries and mutations. Improved the solution for resizing the different editors (query, variables, and response).
    • The favorites feature on the type definitions page has been updated. It's now possible to order favorites and download them individually.
    • Large overhaul of the styling to align with the other Neo4j frontend products.

Minor Changes

  • #3506 8f4af1641 Thanks @mjfwebb! - Toolbox: updates look and feel of favorites and adds ability to sort and download snippets

Patch Changes

  • #3491 4d6db92f9 Thanks @mjfwebb! - fix: Toolbox - Tabs no longer have scrollbars
    fix: Toolbox - DocExplorer no longer has a flash of an error when loading
    feat: Toolbox - The "Build Schema" button now shows a loading state
    fix: Toolbox - Tabs only have a close button when there is more than one tab

  • #3481 67800df06 Thanks @tbwiss! - feat: Toolbox - address several small editor issues

  • #3518 f386b950c Thanks @tbwiss! - feat: Toolbox - additional product tracking events for new UI elements

  • #3498 0be64e79d Thanks @tbwiss! - feat: Toolbox - clean-up after CodeMirror v6 integration

  • #3487 0c526615c Thanks @tbwiss! - feat: Toolbox - warning dialog when attempting to switch database

  • #3504 da8bd8799 Thanks @tbwiss! - fix: Toolbox - right-hand sider overflow and font-family for components

graphql - @neo4j/[email protected]

Published by neo4j-team-graphql over 1 year ago

Minor Changes

Patch Changes

Package Rankings
Top 1.65% on Npmjs.org
Related Projects