# Feature Request: Update After @auth Validation

**URL:** <https://discuss.dgraph.io/t/feature-request-update-after-auth-validation/14799>\
**Category:** GraphQL\
**Tags:** kind:enhancement, kind:feature\
**Created:** [July 2, 2021, 2:03am UTC](https://discuss.dgraph.io/t/feature-request-update-after-auth-validation/14799 "2021-07-02T02:03:23Z")\
**Posts on this page:** 1\
**Showing post:** 22

<div class="post-metadata">

**Author:** ![jdgamble555](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/jdgamble555/32/7503_2.png) [@jdgamble555](https://discuss.dgraph.io/u/jdgamble555)\
**Post date:** [September 21, 2021, 7:26am UTC](https://discuss.dgraph.io/t/feature-request-update-after-auth-validation/14799/22 "2021-09-21T07:26:16Z")

</div>

Thanks @aman-bansal. I am looking forward to it!

One of the great uses of this thing for me will be **field validation** as I spoke of above. It will solve so many problems you guys don’t even realize.

It seems [neo4j](https://neo4j.com/docs/graphql-manual/current/auth/authorization/bind/) uses something called **bind** for their **after-update** validation. Every other graphql implementation I found pretty much has internal mechanisms for these checks outside of graphql.

You guys have to remember that Dgraph does not have any internal contraint testing like Cypher and SQL can do.

* * *

Please do not let this be the last GraphQL feature you guys program for a while.

While this is the biggest one (arguably tied with nested filters), there are a few **core** graphql features that you will have to have. I am not talking about needs for some, but needs for **MOST**.

## For Your Reading Pleasure and Reference…

**Recently Finished**

- [Not Null](http://discuss.hypermode.com/t/no-input-field-null-validation-on-non-nullable-fields/14085/14)

**You have already started coding…**

- [Nested Filters](http://discuss.hypermode.com/t/rfc-nested-filters-in-graphql/13560)
- [Timestamps](http://discuss.hypermode.com/t/automatic-value-for-creation-date-and-modification-date/11922/10?u=jdgamble555)
- [Facets in GraphQL](http://discuss.hypermode.com/t/facets-in-graphql-schema/6526/2?u=jdgamble555)
- **Update After** (this post)

**Extremely Important!!!**

- [Cascade Delete / Nested Updates](http://discuss.hypermode.com/t/feature-request-cascade-delete-deep-mutations-by-reference-directive/14658/4?u=jdgamble555)
- [@auth based on external type](http://discuss.hypermode.com/t/feature-request-non-type-related-query-auth-rule/11086)
- [Pre-hooks](http://discuss.hypermode.com/t/feature-request-lambda-pre-hooks/15626)

**Must Haves**

- [@auto-populated](http://discuss.hypermode.com/t/feature-request-directive-that-indicates-that-id-fields-should-be-auto-populated-on-creation/14992)
- [Default Value](http://discuss.hypermode.com/t/default-values-on-input-types/13448)
- [Composite ID Fields](http://discuss.hypermode.com/t/composite-id-fields/13337)
- [Distinct Queries](http://discuss.hypermode.com/t/select-distinct-in-dgraph/7056/7)

**Eventually**

- Error Codes / Messages in GraphQL
- [2021 Roadmap](http://discuss.hypermode.com/t/dgraph-product-roadmap-2021/12284) - not sure I know what is up-to-date on here and what is not

* * *

**Which are these SQL Equivalents**

- Many-to-Many Joins
- NOW() Timestamps
- Foreign Key - DELETE CASCADE / UPDATE CASCADE
- SQL Triggers - Before AND After
- AUTO\_INCREMENT=X
- SQL Composite Key
- SQL Contraints - CHECK, NOT NULL, UNIQUE, DEFAULT
- SELECT DISTINCT

You can see a pattern of what was forgetten in GraphQL, because other Databases handle these problems internally, unlike Dgraph.

**Other GraphQL Implementions to Get Ideas From**

- [Prisma](https://www.prisma.io/docs/reference/api-reference/prisma-client-reference)
- [Hasura](https://hasura.io/docs/latest/graphql/core/index.html)
- [Neo4j](https://neo4j.com/docs/graphql-manual/current/)

Plenty more like [Contentful](https://www.contentful.com/developers/docs/references/graphql/#/introduction), but these 3 are the most widely used…

I think that is it. These are regular features in other databases that solve MANY problems, not just for a few.

@mrjn - If you truly want to compete with PostgreSQL This is how you do it.

@amaster507 - Let me know if I forgot something.

@aman-bansal - Please read through these so you understand what is truly missing in Dgraph GraphQL

I am not trying to make a general feature list, but GraphQL is also the Middleware for everything in Dgraph, this list is everything, and can be done in 6 months and be done with it.

That’s all she wrote.

J

---

_[View the full topic](https://discuss.dgraph.io/t/feature-request-update-after-auth-validation/14799)._
