# Avo 2.0 documentation map

A map of every Avo 2.0 documentation page and its headings, designed for easy navigation by LLMs.

For the concise index, see [llms.txt](https://docs.avohq.io/2.0/llms.txt). For the full text of every page in one file (large — high token count), see [llms-full.txt](https://docs.avohq.io/2.0/llms-full.txt). For this map as raw markdown, see [docs-map.md](https://docs.avohq.io/2.0/docs-map.md).

> Auto-generated from the VitePress sidebar by `scripts/generate-docs-map.js`. Do not edit manually.

## Document structure

* **##** marks documentation groups (e.g. 'Resources')
* **###** marks individual documentation pages
* **Nested bullets** show the headings within each page
* Each page title links to the full documentation

## Avo 2

### [Intro](https://docs.avohq.io/2.0/index.html)

* 1. The CRUD UI
* 2. Dashboards
* 3. Custom content
* Seamless upgrades
* Next up
* Walkthrough videos
  * Build a blog admin panel
  * Build a booking app

### [Avo, Rails & Hotwire](https://docs.avohq.io/2.0/rails-and-hotwire.html)

* Avo as a Rails engine
  * Prepend engine name in URL path helpers
  * Use your helpers inside Avo
* Hotwire
* StimulusJS

### [Licensing](https://docs.avohq.io/2.0/licensing.html)

* Community vs. Pro
* One license per site
  * More installations/environments per site
  * Sites
* Add the license key
* Configure the display of license request timeout error
* Purchase a license
* License validation
  * "Phone home" mechanism
* Upgrade your 1.0 license to 2.0

### [Upgrade guide](https://docs.avohq.io/2.0/upgrade.html)

* Upgrade from 2.43 to 2.44
* Upgrade from 2.42.1 to 2.42.2
* Upgrade from 2.40 to 2.41
  * Badge field secondary option renamed to neutral
* Upgrade from 2.35 to 2.36
  * formatusing is dropping the value argument
* Upgrade from 2.33 to 2.34
  * You may remove the locale files Avo generated for you
* Upgrade from 2.30 to 2.31
  * Ensure that your app works with View Component 2.54
  * Use the new with API in your tools and resource tools
* Upgrade from 2.30.1 to 2.30.2
* Upgrade from 2.29 to 2.30.1
* Upgrade from 2.28 to 2.29
  * Add the search? method to your policies
* Upgrade from 2.27 to 2.28
* Upgrade from 2.26 to 2.27
  * Replace resolvefindscope with findrecordmethod
* Upgrade from 2.20 to 2.21
  * Updated a few translation strings
* Upgrade from 2.19 to 2.20
* Upgrade from 2.18 to 2.19
  * Add a dashboards directory
  * Remove the params from the visible block in actions
* Upgrade from 2.17 to 2.18
  * Manually require some gems
* Upgrade from 2.16 to 2.17
  * Field internals changes
* Upgrade from 2.13 to 2.14
* Upgrade from 2.12 to 2.13
  * Remove the params from the searchquery block
* Upgrade from 2.10 to 2.11
  * Avo uses the locale configuration from the initializer
  * Change the format option in the date time and date fields
* Upgrade from 2.8 to 2.9
  * Avo generates paths based on the resource name not the model name
  * Actions are visible on the Edit view
  * Eject translation files
* Upgrade from 2.7 to 2.8
  * Pass the resource to the showfieldwrapper in custom fields
  * Changed the way the ranges option is processed
* Upgrade from 2.5 to 2.6
  * Change the way the cards run their queries
* Upgrade from 2.4 to 2.5
  * Change the way the scope is declared in associations
* Upgrade from 1.x to 2.0
  * Update the gem
  * Update your sidebar & profile partials
  * View components
  * Translations
  * Controllers

### [Technical Support](https://docs.avohq.io/2.0/technical-support.html)

* (No headings found)

### [Code editors and LLM setup](https://docs.avohq.io/2.0/llm-support.html)

* (Page source not found)

## Configuration

### [Installation](https://docs.avohq.io/2.0/installation.html)

* Requirements
* Installing Avo
* Install from GitHub
* Mount Avo to a subdomain
* Next steps

### [Authentication](https://docs.avohq.io/2.0/authentication.html)

* Customize the currentuser method
  * Using devise
  * Use a different authenticator
* Customize the sign-out link
  * Customize the current user resource name
  * Customize the entire sign-out path
* Filter out requests
* authenticatewith method
* Authorization

### [Authorization](https://docs.avohq.io/2.0/authorization.html)

* Ensure Avo knows who your current user is
* Policies
* Associations
  * Example scenario
* Removing duplication
* Attachments
* Scopes
* Using different policy methods
* Raise errors when policies are missing
* Custom policies
* Custom authorization clients
  * Change the authorization client
  * Client methods
* Rolify integration

### [Cache](https://docs.avohq.io/2.0/cache.html)

* Cache store selection
  * Production
  * Test
  * Development and other environments
  * Custom selection
* Solid Cache

## CRUD UI

### [Resource configuration](https://docs.avohq.io/2.0/resources.html)

* Overview
* Resources from model generation
* Manually defining resources
  * Fields
* Use multiple resources for the same model
  * modelresourcemapping
* Setting the title of the resource
  * Using a computed title
* Resource description
  * Set the description as a string
  * Set the description as a block
* Eager loading
* Views
  * Grid view
* Custom model class
* Routing
* Devise password optional
* Unscoped queries on Index
* Hide resource from the sidebar
* Extending Avo::ResourcesController
* Show buttons on form footers
* Customize what happens after a record is created/edited
* Hide the record selector checkbox
* Link to child resource (STI)
* Manually registering resources
  * type
  * size
  * Examples
    * Default
    * Countless
    * Countless and "pageless"

### [Controller configuration](https://docs.avohq.io/2.0/controllers.html)

* Request-Response lifecycle
* Create methods
* Update methods
* Destroy methods

### [Field options](https://docs.avohq.io/2.0/field-options.html)

* Declaring fields
* Field conventions
* Change field name
* Showing / Hiding fields on different views
* Field Visibility
  * Using if for field visibility
* Computed Fields
* Fields Formatter
  * Formatting with Rails helpers
* Modify the value before saving it to the database
* Sortable fields
* Custom sortable block
* Placeholder
* Required
* Readonly
  * Readonly as a block
* Disabled
* Default Value
* Help text
* Nullable
* Link to resource
* Align text on Index view
* Stacked layout
    * inline layout (default)
    * stacked layout
* Global stacked layout

### [Records reordering](https://docs.avohq.io/2.0/records-reordering.html)

* Configuration
* Always show the order buttons
* Display the buttons in the Index view or association view
* Change the scope on the Index view

### [Tabs and panels](https://docs.avohq.io/2.0/tabs.html)

* Panels
  * Index view fields
* Tabs
  * Tabs on Show view
  * Tabs on Edit view
* Display as pills
  * Display all tabs as pills
  * Display only some tabs as pills

### [Resource sidebar](https://docs.avohq.io/2.0/resource-sidebar.html)

* Adding fields to the sidebar

### [Customizable controls](https://docs.avohq.io/2.0/customizable-controls.html)

* Default buttons
* Show page
* Customize the controls
* Controls
    * Supported options
    * Supported options
    * Supported options
    * Supported options
    * exclude option
    * Example
    * Supported options
    * Supported options
    * Supported options
    * Example
* Control Options
    * Possible values
    * Possible values
    * Possible values
    * Possible values
    * Possible values
    * Possible values
* Conditionally hiding/showing actions

## Fields

### [Area](https://docs.avohq.io/2.0/fields/area.html)

* Description
* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
* Options combined

### [Badge](https://docs.avohq.io/2.0/fields/badge.html)

* Description
* Options
    * Default value
* Examples

### [Boolean](https://docs.avohq.io/2.0/fields/boolean.html)

* Options
    * Default value
    * Default value

### [Boolean group](https://docs.avohq.io/2.0/fields/boolean_group.html)

* Options
    * Default value
* Example DB payload

### [Code](https://docs.avohq.io/2.0/fields/code.html)

* Options
    * Default value
    * Possible values
    * Default value
    * Possible values
    * Default value
    * Possible values
    * Default value
    * Possible values
    * Default value
    * Possible values
    * Default value
    * Possible values

### [Country](https://docs.avohq.io/2.0/fields/country.html)

* Options
  * Default value
  * Possible values

### [Date](https://docs.avohq.io/2.0/fields/date.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values

### [Date time](https://docs.avohq.io/2.0/fields/date_time.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values

### [External image](https://docs.avohq.io/2.0/fields/external_image.html)

* Options
    * Default value
    * Possible values
    * Default value
    * Possible values
    * Default value
    * Possible values
* Use computed values
* Use in the Grid cover position

### [File](https://docs.avohq.io/2.0/fields/file.html)

* Options

### [Files](https://docs.avohq.io/2.0/fields/files.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values

### [Gravatar](https://docs.avohq.io/2.0/fields/gravatar.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
* Using computed values

### [Heading](https://docs.avohq.io/2.0/fields/heading.html)

* Options

### [Hidden](https://docs.avohq.io/2.0/fields/hidden.html)

  * Example usage:

### [Id](https://docs.avohq.io/2.0/fields/id.html)

* Options

### [Key value](https://docs.avohq.io/2.0/fields/key_value.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
* Customizing the labels
* Enforce restrictions

### [Location](https://docs.avohq.io/2.0/fields/location.html)

* Description
* Options
    * Default value
    * Possible values
    * Default value
    * Possible values

### [Markdown](https://docs.avohq.io/2.0/fields/markdown.html)

* Options
    * Default
    * Possible values
* Enable spell checker

### [Number](https://docs.avohq.io/2.0/fields/number.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
* Examples

### [Password](https://docs.avohq.io/2.0/fields/password.html)

* (No headings found)

### [Progress bar](https://docs.avohq.io/2.0/fields/progress_bar.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
* Examples

### [Select](https://docs.avohq.io/2.0/fields/select.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
* Include blank
    * Default
    * Possible values
* Computed options

### [Status](https://docs.avohq.io/2.0/fields/status.html)

* Options
    * Default value
    * Possible values
    * Default value
    * Possible values

### [Tags](https://docs.avohq.io/2.0/fields/tags.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
* PostgreSQL array fields
* Acts as taggable on
* Array fields

### [Text](https://docs.avohq.io/2.0/fields/text.html)

* Options
    * Default
    * Possible values
* Customization

### [Textarea](https://docs.avohq.io/2.0/fields/textarea.html)

* Options
    * Default
    * Possible values

### [Time](https://docs.avohq.io/2.0/fields/time.html)

    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values

### [Trix](https://docs.avohq.io/2.0/fields/trix.html)

* Options
    * Default
    * Possible values
* File attachments
* Disable attachments
* Remove attachment attributes

## Associations

### [Customization](https://docs.avohq.io/2.0/associations.html)

* Single Table Inheritance (STI)
* Link to child resource when using STI
* Add custom labels to the associations' pages

### [Belongs to](https://docs.avohq.io/2.0/associations/belongs_to.html)

* Options
    * Default
    * Possible values
    * Default
    * Possible values
    * Default
    * Possible values
* Overview
* Polymorphic belongsto
* Polymorphic help
* Searchable belongsto
* Belongs to attach scope
* Allow detaching via the association

### [Has one](https://docs.avohq.io/2.0/associations/has_one.html)

* Options

### [Has many](https://docs.avohq.io/2.0/associations/has_many.html)

* Options
* Has Many Through

### [Has and belongs to many](https://docs.avohq.io/2.0/associations/has_and_belongs_to_many.html)

* Options
  * Searchable hasandbelongstomany

## Dashboards and cards

### [Dashboards](https://docs.avohq.io/2.0/dashboards.html)

* Generate a dashboard
* Settings
* Cards
  * Base settings
  * Control the aggregation using ranges
  * Keep the data fresh
  * Hide the header
  * Override card options from the dashboard
    * Control the base settings from the parent
* Cards visibility
* Card types
  * Metric card
    * Calculate results
    * Decorate the data using prefix and suffix
  * Chartkick card
    * Chart types
    * Customize chart
  * Partial card
* Dividers
* Dividers visibility
* Dashboards visibility
* Dashboards authorization

### [Cards](https://docs.avohq.io/2.0/cards.html)

* Base settings
    * Control the aggregation using ranges
    * Keep the data fresh
    * Hide the header
  * Metric card
    * Calculate results
    * Decorate the data using prefix and suffix
  * Chartkick card
    * Chart types
    * Customize chart
  * Partial card

## Customize Avo

### [Customization options](https://docs.avohq.io/2.0/customization.html)

* Change the app name
* Timezone and Currency
* Resource Index view
  * Resources per page
  * Per page steps
  * Resources via per page
  * Default view type
* ID links to resource
* Resource controls on the left side
* Container width
  * Display the Index view full-width
  * Display all views full-width
* Cache resources on the Index view
* Context
* Eject views
  * Prepared templates
    * Logo
    * Header
    * Footer
    * Scripts
  * Eject any template
* Breadcrumbs
  * Breadcrumbs for custom pages
* Page titles
* Home path
  * Use a lambda function for the homepath
* Mount Avo under a nested path
* Custom viewcomponent path
* Custom query scopes
  * Custom scope for Index page
  * Custom scope for Show and Edit pages
  * Custom find method for Show and Edit pages
  * Custom toparam method
    * Using the friendly gem
    * Using prefixedids gem
* Disable features
* Customize profile name, photo, and title
  * Customize the name of the user
  * Customize the profile photo
  * Customize the title of the user
  * Customize the sign-out link
* Skip show view

### [Grid view](https://docs.avohq.io/2.0/grid-view.html)

* Enable grid view
* Make default view
* Fields configuration
* Use a computed field for the cover field

### [Map view](https://docs.avohq.io/2.0/map-view.html)

* Enable map view
* Make it the default view

### [Menu editor](https://docs.avohq.io/2.0/menu-editor.html)

* Menu item types
  * all helpers
* Item visibility
* Add data attributes to items
* Using authorization rules
* Icons
  * Icons on resource, dashboard, and linkto items
* Collapsable sections and groups
  * Default collapsed state
* Authorization
* Profile menu
* Forms in profile menu
* Custom content in the profile menu

### [Search](https://docs.avohq.io/2.0/search.html)

* Enable search for a resource
* Authorize search
* Configure the search result
  * Label
  * Description
  * Avatar
  * Header Help Text
* Resource search
* Global search
  * Hide the global search
* Hide a resource from the global search
  * Scope out global or resource searches
* Search result path

### [Filters](https://docs.avohq.io/2.0/filters.html)

* Defining filters
  * Filter values
* Boolean Filter
  * Default value
* Select Filter
  * Default value
* Multiple select filter
* Dynamic options
* Text Filter
* Default value
* Registering filters
* Dynamic filter options
* React to filters
* Empty message text
* Keep filters panel open
* Visibility
* Filters arguments
* Manually create encoded URLs
  * Rails helpers
    * Usage
    * Usage
  * Standalone helpers
    * Usage
    * Usage
* Persistent filters

### [Actions](https://docs.avohq.io/2.0/actions.html)

* Overview
* Registering actions
* Action responses
  * Message responses
  * Run actions silently
* Response types
* Customization
  * Customize the message
    * Callable message
  * Customize the buttons
  * No confirmation actions
* Standalone actions
* Actions visibility
* Actions authorization
* Actions arguments

### [Localization (I18n)](https://docs.avohq.io/2.0/localization.html)

* Localizing resources
* Localizing fields
* Setting the locale
* Re-generate the locale
* FAQ
  * Advanced localization is a Pro feature
  * The I18n.t method defaults to the name of that field/resource

### [Branding](https://docs.avohq.io/2.0/branding.html)

* Configure brand color
* Customize the chart colors
* Customize the logo
* Customize the missing image placeholder
* Customize the favicon

## Custom content

### [Custom pages](https://docs.avohq.io/2.0/custom-tools.html)

* Generate tools
  * Controller
  * Route
  * Sidebar item
  * Customize the sidebar
* Add assets
* Using helpers from your app
  * Using path helpers
    * For Avo paths
    * For the main app paths

### [Custom fields](https://docs.avohq.io/2.0/custom-fields.html)

* Generate a new field
* Field options
* Field Visibility
* Customize the views
* Field assets
* Use pre-built Stimulus controllers
  * Hidden input controller

### [Resource tools](https://docs.avohq.io/2.0/resource-tools.html)

* Generate a resource tool
* Partial context
* Tool visibility
  * Using path helpers
    * For Avo paths
    * For the main app paths
* Add custom fields on forms

### [Stimulus JS integration](https://docs.avohq.io/2.0/stimulus-integration.html)

* Assign Stimulus controllers to resource views
  * Field wrappers as targets
  * Field inputs as targets
  * All controllers receive the view value
* Assign Stimulus controllers to actions
* Attach HTML attributes
  * Declare the fields from the outside in
* The object notation
* The block notation
* Where are the attributes added?
* Index field wrapper
* Show field wrapper
* Show label target
* Show content target
* Edit field wrapper
* Edit label target
* Edit content target
* Edit input target
* Composing the attributes together
* Pre-made stimulus methods
  * resource-edit#toggle
  * resource-edit#disable
  * resource-edit#debugOnInput
* Custom Stimulus controllers
* Use Stimulus JS in a tool
  * Set up a controller
  * Register that controller with the current Stimulus app
  * Use the controller in the Avo tool

### [Custom asset pipeline](https://docs.avohq.io/2.0/custom-asset-pipeline.html)

* Avo's assets
* Your custom assets
* Use TailwindCSS utility classes
* Add custom JS code and Stimulus controllers
* Use Importmap to add your assets
* Use js-bundling with esbuild
* Use js-bundling with rollup or webpack
* Manually add your CSS and JS assets
  * Sprockets and Propshaft
  * Webpacker

## Native Avo components

### [Avo::PanelComponent](https://docs.avohq.io/2.0/native-components/avo-panel-component.html)

* Options
    * Type
    * Type
    * Type
    * Type
    * Type
    * Type
* Slots

### [Native field components](https://docs.avohq.io/2.0/native-field-components.html)

* Declaring fields
* The form option
* The value option
* Other field options
* Component options
* avofield helper

### [Field wrappers](https://docs.avohq.io/2.0/field-wrappers.html)

    * Default
    * Default
    * Default
* Field wrapper areas
  * Label
  * Value
  * Extra
* Options
    * Default
    * Default
    * Default

## Internals

### [Testing](https://docs.avohq.io/2.0/testing.html)

* Testing Actions

### [Avo::ApplicationController](https://docs.avohq.io/2.0/avo-application-controller.html)

* On extending the ApplicationController
* Responsibly extending the ApplicationController

### [Evaluation hosts](https://docs.avohq.io/2.0/evaluation-hosts.html)

* What's a host?
* BaseHost
  * params
  * Avo's context object
  * The viewcontext object
  * The current user
* Evaluating the block
* RecordHost
* ViewRecordHost
* ResourceViewRecordHost
* AssociationScopeHost
