Compile-time and runtime introspection helpers for Xitdb.Ash.Resource.
Summary
Functions
Returns the deduplicated list of editable and computed Xitdb field names as strings
for one or more Xitdb.Ash.Resource modules, applying any configured field_aliases.
Returns the deduplicated list of Xitdb slot atoms ([:id | editable ++ passthru])
for one or more Xitdb.Ash.Resource modules, applying any configured field_aliases.
Compiles a structural Xitdb.Pull pattern string for one or more Xitdb.Ash.Resource modules.
Resolves the Ash.Resource.Change module for locking/unlocking fields from the
resource's xitdb.lock_change option or Application.get_env(:xitdb, :default_lock_change).
Resolves the target Xitdb store server from context[:xitdb_store], keyword opts[:store],
the resource's xitdb.store option, or Application.get_env(:xitdb, :default_store).
Primary Xitdb hash_map collection (:organizations, :people, :events).
Primary Xitdb hash_map collection (:organizations, :people, :events).
Optional companion resource sharing the same Xitdb entity (e.g. Profile <-> User).
Optional companion resource sharing the same Xitdb entity (e.g. Profile <-> User).
Derived Xitdb-only fields maintained by the engine (e.g. :normalized_name, :activity_count).
Derived Xitdb-only fields maintained by the engine (e.g. :normalized_name, :activity_count).
Canonical attributes subject to per-field survivorship locks and conflict detection.
Canonical attributes subject to per-field survivorship locks and conflict detection.
Maps Ash attribute names to Xitdb slot names (e.g. [parent_organization_id: :parent_org_id]).
Maps Ash attribute names to Xitdb slot names (e.g. [parent_organization_id: :parent_org_id]).
Attributes accepted by sync_update_action that are bookkeeping metadata rather than projected Xitdb fields.
Attributes accepted by sync_update_action that are bookkeeping metadata rather than projected Xitdb fields.
Secondary B+Tree index declarations ([domain: "domain->org_id", ...]).
Secondary B+Tree index declarations ([domain: "domain->org_id", ...]).
Ash update action that locks a single field.
Ash update action that locks a single field.
Ash.Resource.Change module automatically wired into lock_action and unlock_action (defaults to config :xitdb, :default_lock_change).
Ash.Resource.Change module automatically wired into lock_action and unlock_action (defaults to config :xitdb, :default_lock_change).
Curation counted_hash_set tracking locked entity IDs (:locked_org_ids, etc.).
Curation counted_hash_set tracking locked entity IDs (:locked_org_ids, etc.).
Sorted map storing loser -> winner redirects (:org_merged_into, :merged_into).
Sorted map storing loser -> winner redirects (:org_merged_into, :merged_into).
xitdb DSL options
Attributes projected into Xitdb without per-field conflict logging (e.g. :creatio_id).
Attributes projected into Xitdb without per-field conflict logging (e.g. :creatio_id).
Default Xitdb Store GenServer name (overridable via context[:xitdb_store] or config :xitdb, :default_store).
Default Xitdb Store GenServer name (overridable via context[:xitdb_store] or config :xitdb, :default_store).
Ash update action invoked by reconciler projectors.
Ash update action invoked by reconciler projectors.
Ash update action that unlocks a single field.
Ash update action that unlocks a single field.
Functions
@spec editable_field_strings(Ash.Resource.t() | [Ash.Resource.t()]) :: [String.t()]
Returns the deduplicated list of editable and computed Xitdb field names as strings
for one or more Xitdb.Ash.Resource modules, applying any configured field_aliases.
@spec pull_fields(Ash.Resource.t() | [Ash.Resource.t()]) :: [atom()]
Returns the deduplicated list of Xitdb slot atoms ([:id | editable ++ passthru])
for one or more Xitdb.Ash.Resource modules, applying any configured field_aliases.
@spec pull_pattern_for(Ash.Resource.t() | [Ash.Resource.t()]) :: String.t()
Compiles a structural Xitdb.Pull pattern string for one or more Xitdb.Ash.Resource modules.
@spec resolve_lock_change(Ash.Resource.t() | Spark.Dsl.t()) :: module() | nil
Resolves the Ash.Resource.Change module for locking/unlocking fields from the
resource's xitdb.lock_change option or Application.get_env(:xitdb, :default_lock_change).
@spec resolve_store(Ash.Resource.t(), map() | keyword()) :: GenServer.server() | nil
Resolves the target Xitdb store server from context[:xitdb_store], keyword opts[:store],
the resource's xitdb.store option, or Application.get_env(:xitdb, :default_store).
Primary Xitdb hash_map collection (:organizations, :people, :events).
Primary Xitdb hash_map collection (:organizations, :people, :events).
Optional companion resource sharing the same Xitdb entity (e.g. Profile <-> User).
Optional companion resource sharing the same Xitdb entity (e.g. Profile <-> User).
Derived Xitdb-only fields maintained by the engine (e.g. :normalized_name, :activity_count).
Derived Xitdb-only fields maintained by the engine (e.g. :normalized_name, :activity_count).
Canonical attributes subject to per-field survivorship locks and conflict detection.
Canonical attributes subject to per-field survivorship locks and conflict detection.
Maps Ash attribute names to Xitdb slot names (e.g. [parent_organization_id: :parent_org_id]).
Maps Ash attribute names to Xitdb slot names (e.g. [parent_organization_id: :parent_org_id]).
@spec xitdb_ignored_sync_attributes(dsl_or_extended :: module() | map()) :: {:ok, [atom()]} | :error
Attributes accepted by sync_update_action that are bookkeeping metadata rather than projected Xitdb fields.
Attributes accepted by sync_update_action that are bookkeeping metadata rather than projected Xitdb fields.
Secondary B+Tree index declarations ([domain: "domain->org_id", ...]).
Secondary B+Tree index declarations ([domain: "domain->org_id", ...]).
Ash update action that locks a single field.
Ash update action that locks a single field.
Ash.Resource.Change module automatically wired into lock_action and unlock_action (defaults to config :xitdb, :default_lock_change).
Ash.Resource.Change module automatically wired into lock_action and unlock_action (defaults to config :xitdb, :default_lock_change).
Curation counted_hash_set tracking locked entity IDs (:locked_org_ids, etc.).
Curation counted_hash_set tracking locked entity IDs (:locked_org_ids, etc.).
@spec xitdb_merge_redirect_collection(dsl_or_extended :: module() | map()) :: {:ok, atom()} | :error
Sorted map storing loser -> winner redirects (:org_merged_into, :merged_into).
Sorted map storing loser -> winner redirects (:org_merged_into, :merged_into).
xitdb DSL options
Returns a map containing the and any configured or default values.
Attributes projected into Xitdb without per-field conflict logging (e.g. :creatio_id).
Attributes projected into Xitdb without per-field conflict logging (e.g. :creatio_id).
Default Xitdb Store GenServer name (overridable via context[:xitdb_store] or config :xitdb, :default_store).
Default Xitdb Store GenServer name (overridable via context[:xitdb_store] or config :xitdb, :default_store).
Ash update action invoked by reconciler projectors.
Ash update action invoked by reconciler projectors.
Ash update action that unlocks a single field.
Ash update action that unlocks a single field.