# AshAge v1.0.0 - Table of Contents

Ash Framework DataLayer for Apache AGE graph database

## Pages

- [ash_age](readme.md)
- [Changelog](changelog.md)
- [Contributing to AshAge](contributing.md)
- [LICENSE](license.md)

- Guides
  - [Troubleshooting](troubleshooting.md)

- Reference
  - [ash_age usage rules](usage-rules.md)
  - [AshAge.DataLayer](dsl-ashage-datalayer.md)

## Modules

- Data Layer
  - [AshAge](AshAge.md): Ash Framework DataLayer for Apache AGE graph database.
  - [AshAge.DataLayer](AshAge.DataLayer.md): Ash DataLayer for Apache AGE graph database.
  - [AshAge.DataLayer.Info](AshAge.DataLayer.Info.md): Info functions for AGE data layer configuration.
  - [AshAge.Edge](AshAge.Edge.md): Edge configuration for AGE relationships.

- Types
  - [AshAge.Postgrex.AgtypeExtension](AshAge.Postgrex.AgtypeExtension.md): Postgrex extension for AGE agtype.

  - [AshAge.Type.Agtype](AshAge.Type.Agtype.md): AGType decoder for PostgreSQL AGE graph data.
  - [AshAge.Type.Cast](AshAge.Type.Cast.md): Cast functions for mapping AGE vertex data to Ash resource attributes.

  - [AshAge.Type.Edge](AshAge.Type.Edge.md): Edge type for AGE graph relationships.

  - [AshAge.Type.Path](AshAge.Type.Path.md): Path type for AGE graph traversal results.

  - [AshAge.Type.Vertex](AshAge.Type.Vertex.md): Vertex type for AGE graph nodes.

- Cypher
  - [AshAge.Cypher.Parameterized](AshAge.Cypher.Parameterized.md): Parameterized Cypher query builder for Apache AGE.

- Query
  - [AshAge.Query](AshAge.Query.md): Query structure for AGE graph queries.

  - [AshAge.Query.Filter](AshAge.Query.Filter.md): Translates Ash.Filter into Cypher WHERE clauses.

- Relationships
  - [AshAge.Changes.CreateEdge](AshAge.Changes.CreateEdge.md): Ash change that persists a graph edge from the action's record to a
destination record named by an argument, after the vertex write, inside the
action's transaction.
  - [AshAge.Changes.DestroyEdge](AshAge.Changes.DestroyEdge.md): Ash change that removes a graph edge from the action's record to a destination
record named by an argument, after the vertex write, inside the action's
transaction.
  - [AshAge.ManualRelationships.Traverse](AshAge.ManualRelationships.Traverse.md): Bounded variable-length graph traversal as an Ash manual relationship.

- Multitenancy &amp; RLS
  - [AshAge.Multitenancy](AshAge.Multitenancy.md): Resolves the AGE graph name for a `:context`-multitenant resource + tenant.

- Verifiers
  - [AshAge.DataLayer.Verifiers.ValidateEdge](AshAge.DataLayer.Verifiers.ValidateEdge.md): Raises a `Spark.Error.DslError` at compile verification when an `edge`
entity's `label` or a `properties` key is not a valid AGE identifier
(build-blocking under `--warnings-as-errors` — Spark emits verifier errors
as compiler diagnostics).
  - [AshAge.DataLayer.Verifiers.ValidateMultitenancyAttr](AshAge.DataLayer.Verifiers.ValidateMultitenancyAttr.md): Raises a `Spark.Error.DslError` at compile verification when a resource using
`:attribute` multitenancy lists the multitenancy attribute in
`age do skip [...] end` (build-blocking under `--warnings-as-errors` — Spark
emits verifier errors as compiler diagnostics).
  - [AshAge.DataLayer.Verifiers.ValidateSensitive](AshAge.DataLayer.Verifiers.ValidateSensitive.md): Raises a `Spark.Error.DslError` at compile verification when the
`age do sensitive [...] end` classification cannot hold (Spark surfaces
verifier errors as compiler diagnostics — build-blocking under
`--warnings-as-errors`)
  - [AshAge.DataLayer.Verifiers.ValidateSkip](AshAge.DataLayer.Verifiers.ValidateSkip.md): Raises a `Spark.Error.DslError` at compile verification when a primary-key
attribute appears in `age do skip [...]` (build-blocking under
`--warnings-as-errors` — Spark emits verifier errors as compiler diagnostics).

- Errors
  - [AshAge.Errors.CreateFailed](AshAge.Errors.CreateFailed.md): Error for failed create operations.

  - [AshAge.Errors.QueryFailed](AshAge.Errors.QueryFailed.md): Error for failed queries.

  - [AshAge.Errors.UnsupportedFilter](AshAge.Errors.UnsupportedFilter.md): Error for unsupported filter operations.
  - [AshAge.Errors.UpdateFailed](AshAge.Errors.UpdateFailed.md): Error for failed update operations.

- Utilities
  - [AshAge.Graph](AshAge.Graph.md): Helper functions for AGE graph management.

  - [AshAge.Migration](AshAge.Migration.md): Migration helpers for Apache AGE graph database.
  - [AshAge.Session](AshAge.Session.md): Session setup for Apache AGE connections.

## Mix Tasks

- Mix Tasks
  - [mix ash_age.gen.migration](Mix.Tasks.AshAge.Gen.Migration.md): Generates a timestamped Ecto migration with Apache AGE boilerplate.
  - [mix ash_age.install](Mix.Tasks.AshAge.Install.md): Prints step-by-step setup instructions for integrating ash_age
into your application.
  - [mix ash_age.verify](Mix.Tasks.AshAge.Verify.md): Verifies that Apache AGE is properly configured in your database.

