Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging content for restructuring of docs #3087

Merged
merged 27 commits into from
Apr 17, 2023

Conversation

lidiazuin
Copy link
Contributor

Work in progress. Please do not merge.

@lidiazuin lidiazuin added the documentation Improvements or additions to documentation label Mar 23, 2023
@CLAassistant
Copy link

CLAassistant commented Mar 23, 2023

CLA assistant check
All committers have signed the CLA.

@changeset-bot
Copy link

changeset-bot bot commented Mar 23, 2023

⚠️ No Changeset found

Latest commit: 2a6250b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-advanced-security
Copy link

You have successfully added a new CodeQL configuration .github/workflows/pull-requests.yml:code-scanning. As part of the setup process, we have scanned this repository and found 6 existing alerts. Please check the repository Security tab to see all alerts.

@lidiazuin lidiazuin marked this pull request as ready for review March 27, 2023 11:00
@neo4j-team-graphql
Copy link
Collaborator

neo4j-team-graphql commented Mar 30, 2023

Thanks for the documentation updates.

The preview documentation has now been torn down - reopening this PR will republish it.

@darrellwarde
Copy link
Contributor

darrellwarde commented Apr 6, 2023

As discussed, a few points that need changing:

  • Remove the orphaned type-definitions/index.adoc page and children
  • Create a new top-level section "Migration Guides", and move the "Migration from neo4j-graphql-js" page into it at the same level as the other migration guides
  • I actually just noticed the "OGM" page under the "Reference" section - I would move that up to the top-level!
  • Find the missing API reference page for the library and pop it under the "Reference" section
  • The "Array methods" page seems to have gone missing. I would put this under the "Mutations" page, and also move the "Mathematical operators" page from in "Queries" to "Mutations"
  • Finally, I would swap the order of the "Custom Resolvers" and "Subscriptions" pages in the contents

But overall, I think this is a much needed cleanup and looking really promising! 🙂

@lidiazuin
Copy link
Contributor Author

Hi @darrellwarde ! Thanks for the checklist. The Array Methods page was merged with the Update page under Mutations. Should I restore it to a different page instead?

@darrellwarde
Copy link
Contributor

Hi @darrellwarde ! Thanks for the checklist. The Array Methods page was merged with the Update page under Mutations. Should I restore it to a different page instead?

I see! In that case, I would consider also merging Mathematical Operators into the Update page also, or perhaps as a sub-page of Update, whatever you think is best!

@lidiazuin
Copy link
Contributor Author

Hi @darrellwarde ! Thanks for the checklist. The Array Methods page was merged with the Update page under Mutations. Should I restore it to a different page instead?

I see! In that case, I would consider also merging Mathematical Operators into the Update page also, or perhaps as a sub-page of Update, whatever you think is best!

Cool, I've merged it. With that, I think everything from the checklist is covered and we are good to go, if there isn't anything else you might have spotted?

@darrellwarde
Copy link
Contributor

Under https://neo4j-graphql-docs-3087.surge.sh/graphql-manual/3.0/api-reference/, Neo4jGraphQL is still a dead link, I think that page still hasn't been mapped in!

@darrellwarde
Copy link
Contributor

Perhaps a bigger problem actually, it seems that all links to other pages in the documentation have become broken, perhaps because the targets have not been updated. This is particularly easy to spot on the Directives reference page. Maybe we were doing these links wrong, but as it stands, these will need updating!

@lidiazuin
Copy link
Contributor Author

https://neo4j-graphql-docs-3087.surge.sh/graphql-manual/3.0/api-reference/

This was actually due to an accidental deletion of the page, but I fixed this already. About updating the targets, I'm working on it!

@lidiazuin
Copy link
Contributor Author

@darrellwarde all links should be fixed now, but I think I broke the yarn.lock file again 🙃

@darrellwarde
Copy link
Contributor

@darrellwarde all links should be fixed now, but I think I broke the yarn.lock file again 🙃

With the yarn.lock file:

  1. Merge the 4.0.0 branch into your branch.
  2. If there are conflicts other than the yarn.lock file, resolve these manually.
  3. If the yarn.lock file is conflicting, don't manually update! Just run yarn at the root of the repo and it will resolve them for you. Install yarn using npm i -g yarn if you don't have it.
  4. Commit the changes, and push!

I should have explained this earlier, my bad! 🙃

@lidiazuin
Copy link
Contributor Author

Thanks @darrellwarde . Hopefully it's fine now 😅

@darrellwarde
Copy link
Contributor

@lidiazuin I think this is almost good to merge. One concern I've just realised, is the Filtering and Sorting under "Queries and Aggregations". Filtering and sorting are available on Mutations and Subscriptions also, so having them hidden under Queries could be detrimental. Perhaps we could merge them with pagination, "Filtering, Sorting and Pagination"? Too long?

@lidiazuin
Copy link
Contributor Author

@darrellwarde under the Subscription section, there's another page for Filtering specific to that - https://neo4j-graphql-docs-3087.surge.sh/graphql-manual/3.0/subscriptions/filtering/

Would that be the case to have a specific page for each case of filtering, sorting and pagination under mutations and subscription?

@darrellwarde
Copy link
Contributor

@darrellwarde under the Subscription section, there's another page for Filtering specific to that - https://neo4j-graphql-docs-3087.surge.sh/graphql-manual/3.0/subscriptions/filtering/

Would that be the case to have a specific page for each case of filtering, sorting and pagination under mutations and subscription?

That's a great observation, and actually, I don't believe sorting is available for Mutations, so maybe we just need to add a filtering page in there at some point in future.

With that being said, shall we merge this in? I think it's looking good, and we can start progressing from here!

@lidiazuin
Copy link
Contributor Author

Sure! We can do that @darrellwarde and then follow up on the next stage of the restructuring. :)

@darrellwarde darrellwarde merged commit d4d9ef4 into neo4j:4.0.0 Apr 17, 2023
@lidiazuin lidiazuin deleted the docs-mergingcontent branch April 17, 2023 13:30
darrellwarde added a commit that referenced this pull request Sep 1, 2023
* Merging content for restructuring of docs (#3087)

* test

* update

* more rearranging and merging of content

* resolving conflict

* conflict solving

* new attempt to solve conflicts

* Update dependency webpack to v5.76.1

* Update dependency react-router-dom to v6.9.0

* Update dependency lint-staged to v13.2.0

* Update dependency ws to v8.13.0

* resolving conflicts

* new attempt to solve conflicts

* new attempt to solve conflicts

* fixing content nav with pages that were missing

* further adjustments after review

* merging mathematical operators into update

* Fix yarn.lock

* undoing the accidental deletion of the neo4jgraphql.adoc page

* reviewing indexing of links after restructuring of the manual

* fix yarn

* Fix lockfile

* Fix yarn.lock

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Darrell Warde <[email protected]>

* Move subscriptions to features instead of plugins

* Tests on default subscriptions

* Update subscription docs with default example

* Add migration guide on subscriptions

* Update v4-migration.adoc

* Update class names for subscription plugins

* Update TestSubscriptionPlugin in tests

* Fix apollo e2e tests

* Apply suggestions from code review

Co-authored-by: Lidia Zuin <[email protected]>

* Rename several references from plugins to mechanisms

* Update docs/modules/ROOT/pages/subscriptions/mechanisms.adoc

Co-authored-by: Lidia Zuin <[email protected]>

* Fix escaping for relationships

* Fix cypher builder tests

* fix: use gql from graphql-tag in place of old apollo-server gql export

* Update import of gql

* rm unused import

* Remove tests against 4.3 database (#3346)

* Remove tests against 4.3 database

* Fix yarn.lock

* Fix broken Subscriptions test

* Fix property escaping in MERGE operation

* Update fluffy-suns-invite.md

* make temporary set-up to test validation rules

* field category aid

* add tests for existing graphql rule: KnownDirectiveArgument

* add support for fulltext directive in DirectiveArgumentOfCorrectType

* Remove the `@auth` directive (#3579)

* Remove `@auth` code and related tests

* Remove deprecated tests

* Remove `@auth` from final tests

* Tweaks to get tests passing

* Fix missing predicates in nested projection

* Update TCK tests following changes to authorization

* Remove commented block

* Remove redundant Subscriptions tests

* Fix unit tests

* Fix tests

* Add fulltext tests back in which were unrelated to auth

* Better Cypher Builder usage

* Fix broken tests on `4.0.0` (#3593)

* add tests and improve validation run temporary set-up

* pass extra definitions to validation

* extend DirectiveArgumentOfCorrectType to static directives - problematic

* adds rule to validate directive argument values. To be refactored

* Fix sort tck test

* Remove `Neo4jDatabaseInfo` from the public context (#3630)

* Remove Neo4j version check for point translation

* Remove Neo4j database info from public API

* Remove unneeded export, add changeset

* Fix import

* Remove req and request from our context type (#3629)

* Simpler configuration of Cypher query options (#3628)

* Perform major dependency upgrades breaking Node version (#3602)

* Perform major dependency upgrades breaking Node version

* Update OGM snapshots with new inputs and outputs

* Update cypher builder dependency to 1.0.0

* Address additional linting errors on `4.0.0` (#3654)

* Address additional linting errors on `4.0.0`

* Fix issue

* Authorization support for Apollo Federation (#3661)

* Add initial Federation authorization

* Add E2E tests

* Update Federation E2E tests to work without port

* Test type level authorization

* Add changeset

* Update TCK tests

* Skip Federation tests for GraphQL 15

* Remove auth plugin and all references (#3662)

* Remove auth plugin and all references

* Add missing dependency

* Remove auth from content nav

* Use modern driver API and bump version requirements (#3645)

* Bump driver

* In progress changes to driver usage

* Remove DriverWithSessionConfig

* Remove `getContextValuesWithBookmarks`

* Fix typo

* Fix tests

* Remove unused req from performance tests

* Remove unused variables

* Remove deprecated options

* Fix tests

* Mark bookmark fields as deprecated

* Add changeset

* Update OGM snapshots

* Un-deprecate `fulltext` argument, add descriptions for different functionality (#3669)

* Un-deprecate `fulltext` argument, add descriptions for different functionality

* Update snapshot

* Assessment and grouping of all library exports (#3670)

* Assessment and grouping of all library exports

* Add changeset

* Fix test import

* Fix doc blocks

* Simplify the programmatic toggle for debug logging (#3673)

* Simplify the programmatic toggle for debug logging

* Move Toolbox database selection

* Remove unused exports now defined in OGM (#3679)

* Remove `nodes` and `relationships` from the library's public API (#3671)

* Remove `nodes` and `relationships` from the library's public API

* Fix bad merge

* Cypher query options only settable in the context (#3674)

* Cypher query options only settable in the context

* Remove unused export

* Remove reference from troubleshooting guide

* `apoc.util.validate` to `apoc.util.validatePredicate` (#3672)

* Update math operators to use `apoc.util.validatePredicate`

* Relationship validation string using `apoc.util.validatePredicate`

* `createUpdateAndParams` array functions using `apoc.util.validatePredicate`

* `translateUpdate` to use `apoc.util.validatePredicate`, and combine the conditions for less calls

* Remove prodedure checks

* Testing to see if session is causing failures

* Add null checks to validations, only add division rule if needed

* Update packages/graphql/tests/integration/math.int.test.ts

Co-authored-by: MacondoExpress <[email protected]>

---------

Co-authored-by: MacondoExpress <[email protected]>

* Strongly type `context` field in OGM (#3690)

* Strongly type `context` field in OGM

* Fix schema tests

* Validation configuration changes (#3687)

* Miscellaneous test fix

* Missing custom resolvers to warn instead of throw

* Unified validate option, removal of library config object

* Docs updates

* Add changeset

* Update docs

* Add a bit about `startupValidation`

* Remove `neo4jValidateGraphQLDocument` (#3691)

* Subscriptions Engine (#3688)

* Changes subscription mechanism to engine

* Miscellaneous fixes

* Add migration step

* Docs remnants

* Fix linting and tests

* Update examples

* EngineAMQP to AMQPEngine

* Much better naming for subscriptions engine

* Update nine-poems-retire.md

* Re-lock

* Fix version of AMQP engine

* Version Packages (beta) (#2774)

* adds directive combination rules

* adds jwt directives validation rule

* Remove docs (#3696)

* Remove docs

* Remove references

* adds more validation rules and tests, id in progress

* finish all validations except customResolver, add tests, refactoring todo

* refactor into generic rules w/ specialized validation functions

* remove comments

* tidy up code

* improve relationship validation, start updating tests

* merge 4.0.0

* update tests

* attempt fix ts error

* fix global id inherited alias

* remove comments

* refactor relationship validation

* refactor invalid directive combinations

* remove unused imports

* update validation on getSubgraphSchema

* make valid-object-type rule work

* fix reviewdog on tests

* Version Packages (beta) (#3734)

* Schema model refactoring (#3689)

* Add directive annotations (#3615)

* feat: add alias directive annotation

* feat: add queryOptions directive annotation

* feat: parse Kind.INT and Kind.Float into JS numbers

* feat: add default directive annotation

* feat: add coalesce directive annotation

* feat: add customResolver annotation

* feat: add ID directive annotation

* refactor: use makeDirectiveNode in key-annotation tests

* feat: add mutation directive annotation

* feat: add plural directive annotation

* feat: add filterable directive annotation

* feat: add fulltext directive annotation

* feat: add node directive annotation

* feat: add populatedBy directive annotation

* feat: add query directive annotation

* feat: add private directive annotation

* feat: add relationshipProperties annotation

* feat: add selectable directive annotation

* feat: add settable directive annotation

* feat: add timestamp directive annotation

* feat: add unique directive annotation

* feat: add subscription directive annotation

* feat: add jwt-claim directive annotation

* feat: add jwt-payload directive annotation

* feat: add directives to Annotation

---------

Co-authored-by: MacondoExpress <[email protected]>

* Schema model re-design (#3596)

* initial refactor of the schema model

* add unit tests for schema model Attributes

* include initial design for the GraphQL models

* add Attribute tests, improve Attribute models

* merge schema model changes with authorization changes

* fix relationship-field parsing on schema model

* organise parser folder

* Add missing GraphQL models to the Schema Models

* change Schema Model test to showcase how to dynamically get EntityModels from relationships

* improve coverage on the Attribute Models

* add more tests to the ConcreteEntityModel

* Apply suggestions from code review

Co-authored-by: angrykoala <[email protected]>

* lint fixes

* rename graphql-models to model-adapters

* remove @relationshipProperties annotation as it is implicit within the Relationship class

* remove code duplicity around leadingUnderscores utility and test it

* parseArguments of directive using default values, add Schema Model tests for annotations and relationships

* remove not necessary node directive

* polishing

* add license header

* Update packages/graphql/src/schema-model/parser/parse-arguments.ts

* add graphqlDefaultValue to Attribute

* remove the graphqlDefault logic

* add comment on the PluralAnnotation

---------

Co-authored-by: Michael Webb <[email protected]>
Co-authored-by: angrykoala <[email protected]>

* address review

* make additional definitions mandatory on validations

* improve error check

* improve validation tests

* Update logical filters in aggregation queries

* Introspector to produce `@mutation` instead of `@exclude` (#3743)

* fix: remove unnecessary readonly (#3735)

* chore(deps): update dependency eslint-config-prettier to v8.10.0

* chore(deps): update dependency jest-extended to v4.0.1

* Introspector to produce `@mutation` instead of `@exclude`

---------

Co-authored-by: Thomas Wiss <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update logical operators on field aggregations outside of node/edge

* Update aggregation implicit and filter

* cypherParams added to new context type, and fields can be directly referred to (#3758)

* cypherParams added to new context type, and fields can be directly referred to

* Resolve all possible label references

* Address PR comments

* code review changes

* fix tests after code review changes

* Fix default logical operators in aggregation filters

* refactor: add types to assertArgumentType

* Add integration test

* fix toolbox error

* Stronger typings for context (#3779)

* Pass info into Executor rather than putting in context

* Typings for fulltext in current context

* Remove unused context entries

* Remove some unneeded context references

* Add context types

* Switch to new context typings

* Remove legacy Context type

* improve valid-directive-combination to check inherited directives as well

* remove resolutions

* fix fulltext missing type

* change id autogenerate default value, remove errors from make-augmented-schema and update tests

* add scaffold directive definition for type dependant directives

* conditionally run directiveArgumentOfCorrectType rule on auth directives

* adjust tests and invalid directive combination matrix

* fix RENAMED_DIRECTIVE_OR_TYPE regex

* remove faulty export

* Reduction in types accepted for type definitions (#3592)

* Refined normalization of user type definitions

* Remove unused type

* Wrap current behaviour with new lifecycle naming

* Fix linting error

* Delete unused tests

* Fix test typings

* Update Neo4jGraphQL.ts

* Correct default access mode for `@cypher` (#3792)

* chore(deps): update dependency eslint to v8.47.0

* Toolbox: Ensure no additional commas are added to the editor value (#3784)

* `@cypher` default access mode to match operation

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Webb <[email protected]>

* Schema model improvements (#3794)

* change isListOf to includeLists flag

* clean up AttributeAdapter

* remove type guards for type

* polish

* use assertionOptions rather than flag

* fix assertions

* add isList argument to the relationship to differentiate between 1..1 or 1..n

* polish

* Move the `limit` argument of `@queryOptions` to `@limit` (#3809)

* Move the `limit` argument of `@queryOptions` to `@limit`

* Update translate-read.ts

* changes from review

* use a lambda instead of Fn.bind

* Improved typings for Subscriptions context and authorization (#3810)

* Improved typings for Subscriptions context and authorization

* Single type for common context fields

* Fix typings so it works without connectionParams

* Fix possible undefined

* Address PR comments

* Rename context interface

* add rule for directives on root type fields

* change queryOptions with limit

* chore: fix linting issues

* Remove references to global authentication (#3815)

* Version Packages (beta) (#3757)

* fix cypher with authorization on root type fields tests

* do not allow directives on interface fields except for relationshipProperties

* remove  rule as directives on intreface fields are no longer possible

* add comments

* disallow unique directive on relationshipProperties explicitly, since interface rule is gone

* improve error messages on root types fields

* remove interface inheritance from validate relationship directive rule

* remove interface inheritance from validate directive combination rule

* Breaking changes to the `@id` directive (#3823)

* Break `@id` `global` argument out into `@relayId`

* Remove arguments from `@id`

* Add changeset

* Address first PR comments

* Switch back to default name for constraints

* Fix directive description

* Remove automatic constraint for `@id`

* Fix typo

* Fix tests

* fix interface field directives tests

* fix id directive rule

* remove interface inheritance from @id validation

* move some tests to validateDocument

* fix some tests with interface inheritance

* Revert "fix some tests with interface inheritance"

This reverts commit 09069f8.

* Revert "remove interface inheritance from @id validation"

This reverts commit 29f5f85.

* Revert "fix interface field directives tests"

This reverts commit 2f0aafc.

* Revert "remove interface inheritance from validate directive combination rule"

This reverts commit 6b3175d.

* Revert "remove interface inheritance from validate relationship directive rule"

This reverts commit ae12676.

* Revert "disallow unique directive on relationshipProperties explicitly, since interface rule is gone"

This reverts commit 4c8b9e8.

* Revert "remove  rule as directives on intreface fields are no longer possible"

This reverts commit 0897e82.

* rename globalId to relayId

* refactor relationship validation to use inheritance utils

* improve directive combination to not run when < 2 directives

* allow directives on interface fields

* update tests

* Remove definitions for `@exclude`, `@readonly` and `@writeonly` (#3857)

* Change `@subscription` `operations` argument to be `events` (#3858)

* `@subscription` `operations` to `events`

* Add changeset

* Missed some usages

* Fix tests

* Rolls back TypeScript to 5.1.6 (#3867)

* update rules with object and interface extensions

* update jwt directives rule to consider extensions

* update relationshipProperties rule to consider extensions

* update relayId rule to consider extensions

* add tests on all rules for extensions

* fix skip test

* fix missing directives

* improve jwt directives rule to check for adding jwt on extension as last thing

* Fix: `cypherParams` in context now work as expected when using OGM (#3830)

* Fix: `cypherParams` in context now work as expected when using OGM

* Remove jwt and token from OGM context types

* Change test to use cypherParams

* Update typing

* improve jwt directives rule to use context document

* refactor jwt directives rule

* Fix README

* Remove unused import

---------

Co-authored-by: MacondoExpress <[email protected]>
Co-authored-by: Darrell Warde <[email protected]>
Co-authored-by: Lidia Zuin <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Darrell Warde <[email protected]>
Co-authored-by: Michael Webb <[email protected]>
Co-authored-by: a-alle <[email protected]>
Co-authored-by: Alle <[email protected]>
Co-authored-by: MacondoExpress <[email protected]>
Co-authored-by: Neo4j Team GraphQL <[email protected]>
Co-authored-by: Michael Webb <[email protected]>
Co-authored-by: Thomas Wiss <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants