- A
priorityfield withLOW,MEDIUM,HIGH - A
visibilityfield withPUBLIC,PRIVATE - A
payment_methodfield withCARD,BANK_TRANSFER,CASH
Inline enum vs. user-defined enum
Both options give you the same protection — only listed values are accepted. The difference is reuse:
If you find yourself copy-pasting the same enum values onto multiple fields, switch to a Data Type instead.
Configuration options
How it appears in the API
The field is generated as a typed enum in GraphQL — clients get autocompletion of allowed values and the API rejects any value outside the list. See the GraphQL API Explorer for the generated enum type.Permissions
Inline enum fields are subject to the per-role read and write rules configured in Role-Based Access.FAQ
When should I switch from inline to a Data Type?
When should I switch from inline to a Data Type?
The moment you want the same list on a second field. Inline enums are independent — editing one doesn’t update any others. A Data Type is shared, so editing it once propagates everywhere.
What happens if I remove a value that existing records use?
What happens if I remove a value that existing records use?
Records that hold the removed value will fail validation on update until you reassign them. Plan removals carefully — consider migrating affected rows first, then removing the value.
Can I add new values without breaking existing rows?
Can I add new values without breaking existing rows?
Yes. Adding a value is safe; existing records keep their current values and the new option becomes available going forward.
Can I rename a value?
Can I rename a value?
Renaming changes the enum on the field but does not rewrite existing rows. After renaming, update any rows holding the old value to the new one.