gitextract_uhqy_quz/ ├── .ai/ │ ├── README.md │ ├── cfml/ │ │ ├── README.md │ │ ├── advanced/ │ │ │ └── closures.md │ │ ├── best-practices/ │ │ │ ├── modern-patterns.md │ │ │ └── performance.md │ │ ├── components/ │ │ │ ├── component-basics.md │ │ │ ├── functions.md │ │ │ └── properties.md │ │ ├── control-flow/ │ │ │ ├── conditionals.md │ │ │ ├── exception-handling.md │ │ │ └── loops.md │ │ ├── data-types/ │ │ │ ├── arrays/ │ │ │ │ ├── array-creation.md │ │ │ │ ├── array-iteration.md │ │ │ │ └── array-methods.md │ │ │ ├── numbers/ │ │ │ │ └── numeric-basics.md │ │ │ ├── scopes/ │ │ │ │ └── variables-scope.md │ │ │ ├── strings/ │ │ │ │ ├── string-functions.md │ │ │ │ ├── string-interpolation.md │ │ │ │ └── string-literals.md │ │ │ ├── structures/ │ │ │ │ ├── struct-creation.md │ │ │ │ └── structure-basics.md │ │ │ ├── variable-scopes.md │ │ │ └── variables.md │ │ ├── database/ │ │ │ └── query-basics.md │ │ └── syntax/ │ │ ├── basic-syntax.md │ │ ├── cfscript-vs-tags.md │ │ ├── comments.md │ │ └── hash-escaping.md │ └── wheels/ │ ├── channels/ │ │ └── channels.md │ ├── controllers/ │ │ └── api.md │ ├── cross-engine-compatibility.md │ ├── deploy.md │ ├── security/ │ │ └── https-detection.md │ ├── snippets/ │ │ ├── controller-snippets.md │ │ └── model-snippets.md │ ├── testing/ │ │ ├── browser-testing.md │ │ └── onboarding-harness.md │ ├── troubleshooting/ │ │ ├── common-errors.md │ │ └── form-helper-errors.md │ ├── views/ │ │ └── query-association-patterns.md │ └── wheels-bot.md ├── .cfformat.json ├── .claude/ │ ├── .devcontainer/ │ │ └── devcontainer.json │ └── commands/ │ ├── _shared-rails.md │ ├── address-review.md │ ├── advise-on-deadlock.md │ ├── auto-close-stale-triage.md │ ├── propose-fix.md │ ├── research-frameworks.md │ ├── respond-to-critique.md │ ├── review-pr.md │ ├── review-the-review.md │ ├── triage-issue.md │ ├── update-docs.md │ └── write-docs.md ├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .gitbook.yaml ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── RELEASE_PLAYBOOK.md │ ├── actions/ │ │ ├── publish_forgebox_package/ │ │ │ ├── Dockerfile │ │ │ ├── action.yml │ │ │ └── entrypoint.sh │ │ ├── setup-wheels-test-env/ │ │ │ └── action.yml │ │ └── wheels-bot-skip-check/ │ │ └── action.yml │ ├── labeler.yml │ ├── pull_request_template.md │ ├── slack.yml │ └── workflows/ │ ├── bot-address-review.yml │ ├── bot-advisor.yml │ ├── bot-auto-close.yml │ ├── bot-propose-fix.yml │ ├── bot-research.yml │ ├── bot-review-a.yml │ ├── bot-review-b.yml │ ├── bot-tdd-gate.yml │ ├── bot-triage.yml │ ├── bot-update-docs.yml │ ├── bot-write-docs.yml │ ├── bump-develop-version.yml │ ├── compat-matrix.yml │ ├── deploy-ci.yml │ ├── docs-validation.yml │ ├── docs-verify.yml │ ├── generate-changelog.yml │ ├── label.yml │ ├── pr.yml │ ├── publish-chocolatey.yml │ ├── refresh-packages-baseline.yml │ ├── refresh-visual-baselines.yml │ ├── release-candidate.yml │ ├── release.yml │ ├── snapshot.yml │ ├── version-bump.yml │ └── web-deploy.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .nvmrc ├── .vscode/ │ ├── launch.json │ ├── wheels-test.code-snippets │ └── wheels.code-snippets ├── CFConfig.json ├── CHANGELOG.md ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile.dev ├── LICENSE ├── NOTICE ├── README.md ├── RELEASE-CANDIDATE.md ├── SECURITY.md ├── app/ │ ├── controllers/ │ │ └── Controller.cfc │ ├── events/ │ │ ├── onabort.cfm │ │ ├── onapplicationend.cfm │ │ ├── onapplicationstart.cfm │ │ ├── onerror.cfm │ │ ├── onerror.json.cfm │ │ ├── onerror.xml.cfm │ │ ├── onmaintenance.cfm │ │ ├── onmissingtemplate.cfm │ │ ├── onrequestend.cfm │ │ ├── onrequeststart.cfm │ │ ├── onsessionend.cfm │ │ └── onsessionstart.cfm │ ├── global/ │ │ └── functions.cfm │ ├── jobs/ │ │ └── ProcessOrdersJob.cfc │ ├── lib/ │ │ └── .keep │ ├── migrator/ │ │ ├── .keep │ │ └── migrations/ │ │ └── .keep │ ├── models/ │ │ └── Model.cfc │ ├── snippets/ │ │ ├── ActionContent.txt │ │ ├── ApiControllerContent.txt │ │ ├── BoxJSON.txt │ │ ├── CRUDContent.txt │ │ ├── ConfigAppContent.txt │ │ ├── ConfigDataSourceH2Content.txt │ │ ├── ConfigReloadPasswordContent.txt │ │ ├── ConfigRoutes.txt │ │ ├── ControllerContent.txt │ │ ├── DBMigrate.txt │ │ ├── McpConfig.json │ │ ├── ModelContent.txt │ │ ├── OpenCodeConfig.json │ │ ├── ServerJSON.txt │ │ ├── ViewContent.txt │ │ ├── WheelsBoxJSON.txt │ │ ├── bootstrap/ │ │ │ ├── layout.cfm │ │ │ └── settings.cfm │ │ ├── crud/ │ │ │ ├── _form.txt │ │ │ ├── edit.txt │ │ │ ├── index.txt │ │ │ ├── new.txt │ │ │ └── show.txt │ │ ├── dbmigrate/ │ │ │ ├── announce.txt │ │ │ ├── blank.txt │ │ │ ├── change-column.txt │ │ │ ├── change-table.txt │ │ │ ├── create-column.txt │ │ │ ├── create-index.txt │ │ │ ├── create-record.txt │ │ │ ├── create-table.txt │ │ │ ├── execute.txt │ │ │ ├── remove-column.txt │ │ │ ├── remove-index.txt │ │ │ ├── remove-record.txt │ │ │ ├── remove-table.txt │ │ │ ├── rename-column.txt │ │ │ ├── rename-table.txt │ │ │ └── update-record.txt │ │ ├── mcp-server.js.txt │ │ └── tests/ │ │ ├── controller.txt │ │ ├── model.txt │ │ └── view.txt │ └── views/ │ ├── helpers.cfm │ └── layout.cfm ├── cli/ │ ├── .gitignore │ ├── CHANGELOG │ ├── CLAUDE.md │ ├── LICENSE │ ├── PR-INSTRUCTIONS.md │ ├── README.md │ ├── WHEELS-CLI-ROADMAP.md │ ├── docs/ │ │ └── CONFIG-COMMANDS.md │ ├── lucli/ │ │ ├── ARCHITECTURE.md │ │ ├── Module.cfc │ │ ├── PLAN.md │ │ ├── lib/ │ │ │ └── deploy/ │ │ │ ├── README.md │ │ │ ├── bcpkix-jdk18on-1.78.jar │ │ │ ├── bcprov-jdk18on-1.78.jar │ │ │ ├── bcutil-jdk18on-1.78.jar │ │ │ ├── eddsa-0.3.0.jar │ │ │ ├── jmustache-1.16.jar │ │ │ ├── jzlib-1.1.3.jar │ │ │ ├── manifest.json │ │ │ ├── slf4j-api-2.0.13.jar │ │ │ ├── slf4j-nop-2.0.13.jar │ │ │ ├── snakeyaml-2.3.jar │ │ │ └── sshj-0.39.0.jar │ │ ├── module.json │ │ ├── resources/ │ │ │ └── extensions/ │ │ │ └── sqlite/ │ │ │ └── org.xerial.sqlite-jdbc-3.49.1.0.jar │ │ ├── services/ │ │ │ ├── Admin.cfc │ │ │ ├── Analysis.cfc │ │ │ ├── BundleStager.cfc │ │ │ ├── CfclassesPurger.cfc │ │ │ ├── CodeGen.cfc │ │ │ ├── Destroy.cfc │ │ │ ├── Doctor.cfc │ │ │ ├── FrameworkInstaller.cfc │ │ │ ├── Helpers.cfc │ │ │ ├── MigrationRunner.cfc │ │ │ ├── ReleaseChannel.cfc │ │ │ ├── RewriteConfigInstaller.cfc │ │ │ ├── Scaffold.cfc │ │ │ ├── SemVer.cfc │ │ │ ├── ServerRegistry.cfc │ │ │ ├── Stats.cfc │ │ │ ├── Templates.cfc │ │ │ ├── TestRunner.cfc │ │ │ ├── UpdateChecker.cfc │ │ │ ├── deploy/ │ │ │ │ ├── cli/ │ │ │ │ │ ├── DeployAccessoryCli.cfc │ │ │ │ │ ├── DeployAppCli.cfc │ │ │ │ │ ├── DeployArgsParser.cfc │ │ │ │ │ ├── DeployBuildCli.cfc │ │ │ │ │ ├── DeployLockCli.cfc │ │ │ │ │ ├── DeployMainCli.cfc │ │ │ │ │ ├── DeployProxyCli.cfc │ │ │ │ │ ├── DeployPruneCli.cfc │ │ │ │ │ ├── DeployRegistryCli.cfc │ │ │ │ │ ├── DeploySecretsCli.cfc │ │ │ │ │ ├── DeployServerCli.cfc │ │ │ │ │ └── docs/ │ │ │ │ │ ├── accessories.md │ │ │ │ │ ├── builder.md │ │ │ │ │ ├── env.md │ │ │ │ │ ├── hooks.md │ │ │ │ │ ├── proxy.md │ │ │ │ │ ├── registry.md │ │ │ │ │ ├── servers.md │ │ │ │ │ └── ssh.md │ │ │ │ ├── commands/ │ │ │ │ │ ├── AccessoryCommands.cfc │ │ │ │ │ ├── AppCommands.cfc │ │ │ │ │ ├── AuditorCommands.cfc │ │ │ │ │ ├── Base.cfc │ │ │ │ │ ├── BuilderCommands.cfc │ │ │ │ │ ├── DockerCommands.cfc │ │ │ │ │ ├── HookCommands.cfc │ │ │ │ │ ├── LockCommands.cfc │ │ │ │ │ ├── ProxyCommands.cfc │ │ │ │ │ ├── PruneCommands.cfc │ │ │ │ │ └── RegistryCommands.cfc │ │ │ │ ├── config/ │ │ │ │ │ ├── Accessory.cfc │ │ │ │ │ ├── Builder.cfc │ │ │ │ │ ├── Config.cfc │ │ │ │ │ ├── ConfigLoader.cfc │ │ │ │ │ ├── Env.cfc │ │ │ │ │ ├── Proxy.cfc │ │ │ │ │ ├── Registry.cfc │ │ │ │ │ ├── Role.cfc │ │ │ │ │ ├── Ssh.cfc │ │ │ │ │ └── Validator.cfc │ │ │ │ ├── lib/ │ │ │ │ │ ├── FakeSshPool.cfc │ │ │ │ │ ├── JarLoader.cfc │ │ │ │ │ ├── Mustache.cfc │ │ │ │ │ ├── Output.cfc │ │ │ │ │ ├── SecretResolver.cfc │ │ │ │ │ ├── SshClient.cfc │ │ │ │ │ ├── SshPool.cfc │ │ │ │ │ ├── SshPoolFactory.cfc │ │ │ │ │ ├── SshPoolTask.cfc │ │ │ │ │ └── Yaml.cfc │ │ │ │ └── secrets/ │ │ │ │ ├── AwsSecretsAdapter.cfc │ │ │ │ ├── BaseAdapter.cfc │ │ │ │ ├── BitwardenAdapter.cfc │ │ │ │ ├── DopplerAdapter.cfc │ │ │ │ ├── LastPassAdapter.cfc │ │ │ │ ├── OnePasswordAdapter.cfc │ │ │ │ └── SecretAdapterInterface.cfc │ │ │ └── packages/ │ │ │ ├── HttpClient.cfc │ │ │ ├── Installer.cfc │ │ │ ├── ManifestCache.cfc │ │ │ ├── PackagesMainCli.cfc │ │ │ ├── PackagesRegistryCli.cfc │ │ │ ├── Registry.cfc │ │ │ └── VersionResolver.cfc │ │ ├── templates/ │ │ │ ├── admin/ │ │ │ │ ├── _form.txt │ │ │ │ ├── controller.txt │ │ │ │ ├── edit.txt │ │ │ │ ├── index.txt │ │ │ │ ├── new.txt │ │ │ │ └── show.txt │ │ │ ├── app/ │ │ │ │ ├── _env │ │ │ │ ├── _gitignore │ │ │ │ ├── app/ │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ └── Controller.cfc │ │ │ │ │ ├── events/ │ │ │ │ │ │ ├── onabort.cfm │ │ │ │ │ │ ├── onapplicationend.cfm │ │ │ │ │ │ ├── onapplicationstart.cfm │ │ │ │ │ │ ├── onerror.cfm │ │ │ │ │ │ ├── onerror.json.cfm │ │ │ │ │ │ ├── onerror.xml.cfm │ │ │ │ │ │ ├── onmaintenance.cfm │ │ │ │ │ │ ├── onmissingtemplate.cfm │ │ │ │ │ │ ├── onrequestend.cfm │ │ │ │ │ │ ├── onrequeststart.cfm │ │ │ │ │ │ ├── onsessionend.cfm │ │ │ │ │ │ └── onsessionstart.cfm │ │ │ │ │ ├── global/ │ │ │ │ │ │ └── functions.cfm │ │ │ │ │ ├── jobs/ │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ └── README.md │ │ │ │ │ ├── lib/ │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ └── README.md │ │ │ │ │ ├── mailers/ │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ └── README.md │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ └── migrations/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── Model.cfc │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ └── README.md │ │ │ │ │ ├── snippets/ │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ ├── ActionContent.txt │ │ │ │ │ │ ├── ApiControllerContent.txt │ │ │ │ │ │ ├── BoxJSON.txt │ │ │ │ │ │ ├── CRUDContent.txt │ │ │ │ │ │ ├── ConfigAppContent.txt │ │ │ │ │ │ ├── ConfigDataSourceH2Content.txt │ │ │ │ │ │ ├── ConfigReloadPasswordContent.txt │ │ │ │ │ │ ├── ConfigRoutes.txt │ │ │ │ │ │ ├── ControllerContent.txt │ │ │ │ │ │ ├── DBMigrate.txt │ │ │ │ │ │ ├── ModelContent.txt │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── ServerJSON.txt │ │ │ │ │ │ ├── ViewContent.txt │ │ │ │ │ │ ├── WheelsBoxJSON.txt │ │ │ │ │ │ └── mcp-server.js.txt │ │ │ │ │ └── views/ │ │ │ │ │ ├── helpers.cfm │ │ │ │ │ └── layout.cfm │ │ │ │ ├── config/ │ │ │ │ │ ├── app.cfm │ │ │ │ │ ├── environment.cfm │ │ │ │ │ ├── routes.cfm │ │ │ │ │ └── settings.cfm │ │ │ │ ├── db/ │ │ │ │ │ └── .gitignore │ │ │ │ ├── lucee.json │ │ │ │ ├── public/ │ │ │ │ │ ├── Application.cfc │ │ │ │ │ ├── files/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── images/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── index.cfm │ │ │ │ │ ├── javascripts/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ └── Application.cfc │ │ │ │ │ ├── stylesheets/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ └── urlrewrite.xml │ │ │ │ ├── rewrite.config │ │ │ │ ├── tests/ │ │ │ │ │ ├── populate.cfm │ │ │ │ │ ├── runner.cfm │ │ │ │ │ └── specs/ │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── functional/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ └── models/ │ │ │ │ │ └── .gitkeep │ │ │ │ └── vendor/ │ │ │ │ └── .gitkeep │ │ │ ├── deploy/ │ │ │ │ └── init/ │ │ │ │ ├── Dockerfile.mustache │ │ │ │ ├── deploy.yml.mustache │ │ │ │ ├── dockerignore.mustache │ │ │ │ └── secrets.mustache │ │ │ ├── migrations/ │ │ │ │ └── remove_table.txt │ │ │ └── snippets/ │ │ │ ├── api-controller.txt │ │ │ ├── auth-filter.txt │ │ │ ├── auth-login-view.txt │ │ │ ├── auth-sessions-controller.txt │ │ │ ├── crud-controller.txt │ │ │ ├── flash-messages.txt │ │ │ ├── pagination-view.txt │ │ │ ├── seeds-development.txt │ │ │ ├── seeds.txt │ │ │ ├── soft-delete-migration.txt │ │ │ ├── soft-delete-mixin.txt │ │ │ └── user-mailer.txt │ │ └── tests/ │ │ ├── Application.cfc │ │ ├── TestHelper.cfc │ │ ├── _fixtures/ │ │ │ └── deploy/ │ │ │ ├── configs/ │ │ │ │ ├── full.yml │ │ │ │ ├── invalid/ │ │ │ │ │ ├── invalid-host.yml │ │ │ │ │ ├── missing-service.yml │ │ │ │ │ └── unknown-key.yml │ │ │ │ ├── minimal.yml │ │ │ │ ├── with-accessories.yml │ │ │ │ └── with-ssh.yml │ │ │ ├── e2e/ │ │ │ │ ├── README.md │ │ │ │ ├── app/ │ │ │ │ │ ├── Dockerfile.v1 │ │ │ │ │ └── Dockerfile.v2 │ │ │ │ ├── authorized_keys │ │ │ │ ├── deploy.yml │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── docker-shim.sh │ │ │ │ ├── install-shims.sh │ │ │ │ ├── test_key │ │ │ │ └── test_key.pub │ │ │ └── sshd/ │ │ │ ├── README.md │ │ │ ├── authorized_keys │ │ │ ├── docker-compose.yml │ │ │ ├── test_key │ │ │ └── test_key.pub │ │ ├── _helpers/ │ │ │ └── DeployShellHelper.cfc │ │ ├── runner.cfm │ │ ├── specs/ │ │ │ ├── commands/ │ │ │ │ ├── ConsoleCommandSpec.cfc │ │ │ │ ├── DbCommandSpec.cfc │ │ │ │ ├── DeployCommandSpec.cfc │ │ │ │ ├── DestroyCommandSpec.cfc │ │ │ │ ├── GenerateCommandSpec.cfc │ │ │ │ ├── InfoCommandSpec.cfc │ │ │ │ ├── MigrateCommandSpec.cfc │ │ │ │ ├── NewCommandSpec.cfc │ │ │ │ ├── NewCommandTemplateSpec.cfc │ │ │ │ ├── PackagesCommandSpec.cfc │ │ │ │ ├── ReloadCommandSpec.cfc │ │ │ │ └── TestCommandSpec.cfc │ │ │ ├── deploy/ │ │ │ │ ├── DeployArgsParserSpec.cfc │ │ │ │ ├── cli/ │ │ │ │ │ ├── DeployAccessoryCliSpec.cfc │ │ │ │ │ ├── DeployAppCliSpec.cfc │ │ │ │ │ ├── DeployBuildCliSpec.cfc │ │ │ │ │ ├── DeployLockCliSpec.cfc │ │ │ │ │ ├── DeployMainCliSpec.cfc │ │ │ │ │ ├── DeployProxyCliSpec.cfc │ │ │ │ │ ├── DeployPruneCliSpec.cfc │ │ │ │ │ ├── DeployRegistryCliSpec.cfc │ │ │ │ │ ├── DeploySecretsCliSpec.cfc │ │ │ │ │ └── DeployServerCliSpec.cfc │ │ │ │ ├── commands/ │ │ │ │ │ ├── AccessoryCommandsSpec.cfc │ │ │ │ │ ├── AppCommandsSpec.cfc │ │ │ │ │ ├── AuditorCommandsSpec.cfc │ │ │ │ │ ├── BaseSpec.cfc │ │ │ │ │ ├── BuilderCommandsSpec.cfc │ │ │ │ │ ├── HookCommandsSpec.cfc │ │ │ │ │ ├── LockCommandsSpec.cfc │ │ │ │ │ ├── ProxyCommandsSpec.cfc │ │ │ │ │ ├── PruneCommandsSpec.cfc │ │ │ │ │ └── RegistryCommandsSpec.cfc │ │ │ │ ├── config/ │ │ │ │ │ ├── AccessorySpec.cfc │ │ │ │ │ ├── ConfigLoaderSpec.cfc │ │ │ │ │ └── SshSpec.cfc │ │ │ │ ├── integration/ │ │ │ │ │ └── E2EDeploySpec.cfc │ │ │ │ ├── lib/ │ │ │ │ │ ├── FakeSshPoolSpec.cfc │ │ │ │ │ ├── MustacheSpec.cfc │ │ │ │ │ ├── OutputSpec.cfc │ │ │ │ │ ├── SecretResolverSpec.cfc │ │ │ │ │ ├── SshClassloadSpec.cfc │ │ │ │ │ ├── SshClientSpec.cfc │ │ │ │ │ ├── SshPoolDefaultsSpec.cfc │ │ │ │ │ ├── SshPoolFactorySpec.cfc │ │ │ │ │ ├── SshPoolSpec.cfc │ │ │ │ │ └── YamlSpec.cfc │ │ │ │ └── secrets/ │ │ │ │ ├── AwsSecretsAdapterSpec.cfc │ │ │ │ ├── BitwardenAdapterSpec.cfc │ │ │ │ ├── DopplerAdapterSpec.cfc │ │ │ │ ├── LastPassAdapterSpec.cfc │ │ │ │ ├── OnePasswordAdapterSpec.cfc │ │ │ │ └── _stubs/ │ │ │ │ ├── StubAwsSecretsAdapter.cfc │ │ │ │ ├── StubBitwardenAdapter.cfc │ │ │ │ ├── StubDopplerAdapter.cfc │ │ │ │ ├── StubLastPassAdapter.cfc │ │ │ │ └── StubOnePasswordAdapter.cfc │ │ │ ├── integration/ │ │ │ │ ├── DbCommandsSpec.cfc │ │ │ │ ├── IntrospectSpec.cfc │ │ │ │ └── ServerCommandsSpec.cfc │ │ │ ├── packages/ │ │ │ │ ├── InstallerSpec.cfc │ │ │ │ ├── ManifestCacheSpec.cfc │ │ │ │ ├── PackagesMainCliSpec.cfc │ │ │ │ ├── RegistryListAllSpec.cfc │ │ │ │ ├── RegistrySpec.cfc │ │ │ │ ├── VersionResolverSpec.cfc │ │ │ │ └── _stubs/ │ │ │ │ └── FakeHttpClient.cfc │ │ │ └── services/ │ │ │ ├── AdminSpec.cfc │ │ │ ├── AnalysisSpec.cfc │ │ │ ├── BundleStagerSpec.cfc │ │ │ ├── CfclassesPurgerSpec.cfc │ │ │ ├── CodeGenSpec.cfc │ │ │ ├── DestroySpec.cfc │ │ │ ├── DoctorSpec.cfc │ │ │ ├── FrameworkInstallerSpec.cfc │ │ │ ├── HelpersSpec.cfc │ │ │ ├── MigrationRunnerSpec.cfc │ │ │ ├── ReleaseChannelSpec.cfc │ │ │ ├── ScaffoldSpec.cfc │ │ │ ├── ServerRegistrySpec.cfc │ │ │ ├── StatsSpec.cfc │ │ │ ├── TemplatesSpec.cfc │ │ │ ├── TestRunnerSpec.cfc │ │ │ └── UpdateCheckerSpec.cfc │ │ ├── test-module-install.sh │ │ ├── test-new-exit-codes.sh │ │ └── test-server-required-exit-codes.sh │ └── src/ │ ├── ModuleConfig.cfc │ ├── commands/ │ │ └── wheels/ │ │ ├── about.cfc │ │ ├── analyze/ │ │ │ ├── code.cfc │ │ │ └── performance.cfc │ │ ├── assets/ │ │ │ ├── clean.cfc │ │ │ ├── clobber.cfc │ │ │ ├── init.cfc │ │ │ └── precompile.cfc │ │ ├── base.cfc │ │ ├── benchmark.cfc │ │ ├── browser/ │ │ │ ├── install.cfc │ │ │ └── test.cfc │ │ ├── cache/ │ │ │ └── clear.cfc │ │ ├── cleanup/ │ │ │ ├── logs.cfc │ │ │ ├── sessions.cfc │ │ │ └── tmp.cfc │ │ ├── config/ │ │ │ ├── check.cfc │ │ │ ├── diff.cfc │ │ │ ├── dump.cfc │ │ │ ├── env.cfc │ │ │ ├── list.cfc │ │ │ └── set.cfc │ │ ├── db/ │ │ │ ├── create.cfc │ │ │ ├── drop.cfc │ │ │ ├── dump.cfc │ │ │ ├── reset.cfc │ │ │ ├── restore.cfc │ │ │ ├── rollback.cfc │ │ │ ├── schema.cfc │ │ │ ├── seed.cfc │ │ │ ├── setup.cfc │ │ │ ├── shell.cfc │ │ │ ├── status.cfc │ │ │ └── version.cfc │ │ ├── dbmigrate/ │ │ │ ├── create/ │ │ │ │ ├── blank.cfc │ │ │ │ ├── column.cfc │ │ │ │ └── table.cfc │ │ │ ├── diff.cfc │ │ │ ├── down.cfc │ │ │ ├── exec.cfc │ │ │ ├── info.cfc │ │ │ ├── latest.cfc │ │ │ ├── remove/ │ │ │ │ └── table.cfc │ │ │ ├── reset.cfc │ │ │ └── up.cfc │ │ ├── deploy/ │ │ │ ├── audit.cfc │ │ │ ├── base.cfc │ │ │ ├── exec.cfc │ │ │ ├── hooks.cfc │ │ │ ├── init.cfc │ │ │ ├── lock.cfc │ │ │ ├── logs.cfc │ │ │ ├── proxy.cfc │ │ │ ├── push.cfc │ │ │ ├── rollback.cfc │ │ │ ├── secrets.cfc │ │ │ ├── setup.cfc │ │ │ ├── status.cfc │ │ │ └── stop.cfc │ │ ├── deploy.cfc │ │ ├── deps.cfc │ │ ├── deptree.cfc │ │ ├── destroy.cfc │ │ ├── docker/ │ │ │ ├── DockerCommand.cfc │ │ │ ├── build.cfc │ │ │ ├── deploy.cfc │ │ │ ├── exec.cfc │ │ │ ├── init.cfc │ │ │ ├── login.cfc │ │ │ ├── logs.cfc │ │ │ ├── push.cfc │ │ │ └── stop.cfc │ │ ├── docs/ │ │ │ ├── generate.cfc │ │ │ └── serve.cfc │ │ ├── doctor.cfc │ │ ├── env/ │ │ │ ├── list.cfc │ │ │ ├── merge.cfc │ │ │ ├── set.cfc │ │ │ ├── setup.cfc │ │ │ ├── show.cfc │ │ │ ├── switch.cfc │ │ │ └── validate.cfc │ │ ├── environment.cfc │ │ ├── generate/ │ │ │ ├── admin.cfc │ │ │ ├── api-resource.cfc │ │ │ ├── app-wizard.cfc │ │ │ ├── app.cfc │ │ │ ├── code.cfc │ │ │ ├── controller.cfc │ │ │ ├── helper.cfc │ │ │ ├── migration.cfc │ │ │ ├── model.cfc │ │ │ ├── property.cfc │ │ │ ├── route.cfc │ │ │ ├── scaffold.cfc │ │ │ ├── seed.cfc │ │ │ ├── snippets.cfc │ │ │ ├── test.cfc │ │ │ └── view.cfc │ │ ├── get/ │ │ │ ├── environment.cfc │ │ │ └── settings.cfc │ │ ├── info.cfc │ │ ├── init.cfc │ │ ├── jobs/ │ │ │ ├── monitor.cfc │ │ │ ├── purge.cfc │ │ │ ├── retry.cfc │ │ │ ├── status.cfc │ │ │ └── work.cfc │ │ ├── log/ │ │ │ ├── clear.cfc │ │ │ └── tail.cfc │ │ ├── maintenance/ │ │ │ ├── off.cfc │ │ │ └── on.cfc │ │ ├── mcp/ │ │ │ ├── remove.cfc │ │ │ ├── setup.cfc │ │ │ ├── status.cfc │ │ │ ├── test.cfc │ │ │ └── update.cfc │ │ ├── notes.cfc │ │ ├── optimize/ │ │ │ └── performance.cfc │ │ ├── optimize.cfc │ │ ├── playwright/ │ │ │ ├── init.cfc │ │ │ └── install.cfc │ │ ├── plugins/ │ │ │ ├── info.cfc │ │ │ ├── init.cfc │ │ │ ├── install.cfc │ │ │ ├── list.cfc │ │ │ ├── outdated.cfc │ │ │ ├── remove.cfc │ │ │ ├── search.cfc │ │ │ ├── update.cfc │ │ │ └── updateAll.cfc │ │ ├── profile.cfc │ │ ├── reload.cfc │ │ ├── routes/ │ │ │ └── match.cfc │ │ ├── routes.cfc │ │ ├── secret.cfc │ │ ├── security/ │ │ │ └── scan.cfc │ │ ├── server/ │ │ │ ├── log.cfc │ │ │ ├── open.cfc │ │ │ ├── restart.cfc │ │ │ ├── start.cfc │ │ │ ├── status.cfc │ │ │ └── stop.cfc │ │ ├── set/ │ │ │ ├── datasource.cfc │ │ │ ├── environment.cfc │ │ │ └── settings.cfc │ │ ├── stats.cfc │ │ ├── test/ │ │ │ ├── all.cfc │ │ │ ├── coverage.cfc │ │ │ ├── integration.cfc │ │ │ ├── migrate.cfc │ │ │ ├── run.cfc │ │ │ ├── unit.cfc │ │ │ └── watch.cfc │ │ ├── upgrade.cfc │ │ ├── version.cfc │ │ └── watch.cfc │ ├── interceptors/ │ │ └── postInstall.cfc │ ├── models/ │ │ ├── AdminIntrospectionService.cfc │ │ ├── AdminViewService.cfc │ │ ├── AnalysisService.cfc │ │ ├── BaseCommand.cfc │ │ ├── BrowserService.cfc │ │ ├── CodeGenerationService.cfc │ │ ├── DetailOutputService.cfc │ │ ├── EnvironmentService.cfc │ │ ├── MCPService.cfc │ │ ├── MigrationService.cfc │ │ ├── OptimizationService.cfc │ │ ├── PluginService.cfc │ │ ├── ScaffoldService.cfc │ │ ├── SecurityService.cfc │ │ ├── SharedParameters.cfc │ │ ├── TemplateService.cfc │ │ ├── TestMigrationService.cfc │ │ ├── TestService.cfc │ │ └── helpers.cfc │ ├── recipes/ │ │ └── config-migration.boxr │ └── templates/ │ ├── ActionContent.txt │ ├── ApiControllerContent.txt │ ├── BoxJSON.txt │ ├── CRUDContent.txt │ ├── ConfigAppContent.txt │ ├── ConfigDataSourceH2Content.txt │ ├── ConfigReloadPasswordContent.txt │ ├── ConfigRoutes.txt │ ├── ControllerContent.txt │ ├── DBMigrate.txt │ ├── HelperContent.txt │ ├── McpConfig.json │ ├── ModelContent.txt │ ├── OpenCodeConfig.json │ ├── ServerJSON.txt │ ├── ViewContent.txt │ ├── ViteConfig.txt │ ├── ViteMainCSS.txt │ ├── ViteMainJS.txt │ ├── VitePackageJSON.txt │ ├── WheelsBoxJSON.txt │ ├── admin/ │ │ ├── AdminControllerContent.txt │ │ ├── _form.txt │ │ ├── edit.txt │ │ ├── index.txt │ │ ├── new.txt │ │ └── show.txt │ ├── bootstrap/ │ │ ├── layout.cfm │ │ └── settings.cfm │ ├── crud/ │ │ ├── _form.txt │ │ ├── edit.txt │ │ ├── index.txt │ │ ├── new.txt │ │ └── show.txt │ ├── dbmigrate/ │ │ ├── announce.txt │ │ ├── blank.txt │ │ ├── change-column.txt │ │ ├── change-table.txt │ │ ├── create-column.txt │ │ ├── create-index.txt │ │ ├── create-record.txt │ │ ├── create-table.txt │ │ ├── execute.txt │ │ ├── remove-column.txt │ │ ├── remove-index.txt │ │ ├── remove-record.txt │ │ ├── remove-table.txt │ │ ├── rename-column.txt │ │ ├── rename-table.txt │ │ └── update-record.txt │ └── tests/ │ ├── controller.txt │ ├── helper.txt │ ├── model.txt │ └── view.txt ├── commitlint.config.js ├── compose.yml ├── config/ │ ├── app.cfm │ ├── development/ │ │ └── settings.cfm │ ├── environment.cfm │ ├── maintenance/ │ │ └── settings.cfm │ ├── production/ │ │ └── settings.cfm │ ├── routes.cfm │ ├── settings.cfm │ └── testing/ │ └── settings.cfm ├── context7.json ├── docker-compose.db-h2.yml ├── docker-compose.db-mysql.yml ├── docker-compose.db-postgres.yml ├── docker-compose.dev.yml ├── docs/ │ ├── AI_INTEGRATION_GUIDE.md │ ├── api/ │ │ ├── v1.4.5.json │ │ ├── v2.0.0.json │ │ ├── v2.1.0.json │ │ ├── v2.2.0.json │ │ ├── v2.3.0.json │ │ ├── v2.4.0.json │ │ ├── v2.5.0.json │ │ ├── v3.0.0.json │ │ └── v4.0.0.json │ ├── contributing/ │ │ └── wheels-bot.md │ ├── plans/ │ │ └── 2026-03-07-phase1-verify-test.md │ ├── releases/ │ │ ├── blog-drafts/ │ │ │ ├── README.md │ │ │ ├── anatomy-of-a-wheels-package.md │ │ │ ├── beyond-findall-scopes-enums-query-builder.md │ │ │ └── wheels-claude-stdio-mcp.md │ │ ├── blog-skeletons/ │ │ │ ├── 01-closing-the-maturity-gap.md │ │ │ ├── 02-upgrading-from-3x.md │ │ │ ├── 03-security-hardening.md │ │ │ ├── 04-background-jobs.md │ │ │ ├── 05-lucli-zero-docker.md │ │ │ ├── 06-testing.md │ │ │ ├── 07-multi-tenancy.md │ │ │ ├── 08-wirebox-to-wheelsdi.md │ │ │ ├── 09-wheels-deploy.md │ │ │ ├── README.md │ │ │ ├── social-announcements.md │ │ │ ├── social-post-anatomy-of-a-wheels-package.md │ │ │ ├── social-post-beyond-findall.md │ │ │ ├── social-post-rate-limited-api.md │ │ │ └── social-post-wheels-claude-stdio-mcp.md │ │ ├── wheels-3.0-vs-4.0.md │ │ └── wheels-4.0-audit.md │ ├── superpowers/ │ │ ├── artifacts/ │ │ │ ├── lucli-pr-1/ │ │ │ │ ├── PR.md │ │ │ │ └── cfml-exit-code.patch │ │ │ └── lucli-pr-2/ │ │ │ └── ISSUE.md │ │ ├── plans/ │ │ │ ├── 2026-03-12-ci-engine-grouped-testing.md │ │ │ ├── 2026-03-26-wheels-plugins-sentry-hotwire-basecoat.md │ │ │ ├── 2026-04-09-lucli-foundation-prs.md │ │ │ ├── 2026-04-09-phase2-core-cli.md │ │ │ ├── 2026-04-09-phase3-scaffold-distribution.md │ │ │ ├── 2026-04-09-phase4-in-process-everything.md │ │ │ ├── 2026-04-10-wheels-distribution.md │ │ │ ├── 2026-04-11-cli-testing.md │ │ │ ├── 2026-04-11-cli-tier1-porting.md │ │ │ ├── 2026-04-14-congratulations-page-redesign.md │ │ │ ├── 2026-04-15-auto-migration-rename-detection.md │ │ │ ├── 2026-04-15-browser-testing-foundation.md │ │ │ ├── 2026-04-15-browser-testing-pr2.md │ │ │ ├── 2026-04-15-browser-testing-pr3.md │ │ │ ├── 2026-04-15-browser-testing-pr4.md │ │ │ ├── 2026-04-16-vite-pipeline-maturity.md │ │ │ ├── 2026-04-16-wheels-4.0-upgrade-guide.md │ │ │ ├── 2026-04-17-web-cohesion-foundation.md │ │ │ ├── 2026-04-17-web-cohesion-visual-polish.md │ │ │ ├── 2026-04-18-guides-rewrite-phase-0-report.md │ │ │ ├── 2026-04-18-guides-rewrite-phase-0.md │ │ │ ├── 2026-04-18-guides-rewrite-phase-1-report.md │ │ │ ├── 2026-04-18-guides-rewrite-phase-1.md │ │ │ ├── 2026-04-19-framework-gaps-from-guides-phase-1.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2a-report.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2a.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2b-cli-report.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2b-cli.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2b-digging-deeper-report.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2b-digging-deeper.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2b-testing-report.md │ │ │ ├── 2026-04-20-guides-rewrite-phase-2b-testing.md │ │ │ ├── 2026-04-20-wheels-deploy-kamal-port.md │ │ │ ├── 2026-04-21-guides-rewrite-phase-2c-report.md │ │ │ ├── 2026-04-21-guides-rewrite-phase-2c.md │ │ │ ├── 2026-04-21-phase1-retrospective.md │ │ │ ├── 2026-04-23-wheels-packages-phase1-extraction.md │ │ │ ├── 2026-04-23-wheels-packages-phase4-inapp.md │ │ │ ├── 2026-04-23-wheels-packages-phase4-site.md │ │ │ ├── 2026-04-29-fresh-vm-batch-a-doc-sweep.md │ │ │ ├── 2026-04-29-fresh-vm-batch-b-cli-polish.md │ │ │ ├── 2026-04-29-fresh-vm-batch-c-scaffold-align.md │ │ │ ├── 2026-04-29-fresh-vm-batch-d-di-singleton.md │ │ │ ├── 2026-04-29-fresh-vm-batch-e-browser-test-infra.md │ │ │ ├── 2026-04-29-fresh-vm-onboarding-findings.md │ │ │ ├── 2026-05-07-api-docs-validation-retro.md │ │ │ └── 2026-05-15-rate-limited-api-article.md │ │ └── specs/ │ │ ├── 2026-03-27-cockroachdb-adapter-phase2-design.md │ │ ├── 2026-04-03-module-system-design.md │ │ ├── 2026-04-08-lucli-ci-pipeline-design.md │ │ ├── 2026-04-09-wheels-cli-lucli-integration-design.md │ │ ├── 2026-04-10-wheels-distribution-design.md │ │ ├── 2026-04-11-cli-testing-design.md │ │ ├── 2026-04-11-cli-tier1-porting-design.md │ │ ├── 2026-04-14-congratulations-page-redesign.md │ │ ├── 2026-04-15-auto-migration-rename-detection-design.md │ │ ├── 2026-04-15-browser-testing-design.md │ │ ├── 2026-04-15-browser-testing-pr2-design.md │ │ ├── 2026-04-15-browser-testing-pr3-design.md │ │ ├── 2026-04-15-browser-testing-pr4-design.md │ │ ├── 2026-04-16-vite-pipeline-maturity-design.md │ │ ├── 2026-04-16-wheels-4.0-upgrade-guide-design.md │ │ ├── 2026-04-17-wheels-dev-cohesion-design.md │ │ ├── 2026-04-18-guides-rewrite-v4-design.md │ │ ├── 2026-04-18-starlight-phase-3-design.md │ │ ├── 2026-04-20-wheels-deploy-kamal-port-design.md │ │ ├── 2026-04-23-wheels-packages-phase1-extraction-design.md │ │ ├── 2026-04-23-wheels-packages-phase4-site-design.md │ │ ├── 2026-04-23-wheels-packages-phase4-ui-design.md │ │ └── 2026-05-15-deploy-secrets-flat-aliases-design.md │ └── wheels-vs-frameworks.md ├── e2e/ │ ├── README.md │ ├── api-endpoints.spec.ts │ ├── configuration.spec.ts │ ├── integration.spec.ts │ ├── user-workflows.spec.ts │ ├── wheels-features.spec.ts │ └── wheels-framework.spec.ts ├── examples/ │ ├── README.md │ ├── starter-app/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── app/ │ │ │ ├── controllers/ │ │ │ │ ├── Accounts.cfc │ │ │ │ ├── Controller.cfc │ │ │ │ ├── Main.cfc │ │ │ │ ├── PasswordResets.cfc │ │ │ │ ├── Register.cfc │ │ │ │ ├── Sessions.cfc │ │ │ │ ├── admin/ │ │ │ │ │ ├── Auditlogs.cfc │ │ │ │ │ ├── Permissions.cfc │ │ │ │ │ ├── Roles.cfc │ │ │ │ │ ├── Settings.cfc │ │ │ │ │ ├── UserPermissions.cfc │ │ │ │ │ └── Users.cfc │ │ │ │ └── functions/ │ │ │ │ ├── auth.cfm │ │ │ │ └── filters.cfm │ │ │ ├── events/ │ │ │ │ ├── onabort.cfm │ │ │ │ ├── onapplicationend.cfm │ │ │ │ ├── onapplicationstart.cfm │ │ │ │ ├── onerror.cfm │ │ │ │ ├── onerror.json.cfm │ │ │ │ ├── onerror.xml.cfm │ │ │ │ ├── onmaintenance.cfm │ │ │ │ ├── onmissingtemplate.cfm │ │ │ │ ├── onrequestend.cfm │ │ │ │ ├── onrequeststart.cfm │ │ │ │ ├── onsessionend.cfm │ │ │ │ └── onsessionstart.cfm │ │ │ ├── global/ │ │ │ │ ├── auth.cfm │ │ │ │ ├── functions.cfm │ │ │ │ ├── install.cfm │ │ │ │ ├── logging.cfm │ │ │ │ └── utils.cfm │ │ │ ├── jobs/ │ │ │ │ └── ProcessOrdersJob.cfc │ │ │ ├── lib/ │ │ │ │ └── .keep │ │ │ ├── mailers/ │ │ │ │ └── UserNotificationsMailer.cfc │ │ │ ├── migrator/ │ │ │ │ ├── .keep │ │ │ │ └── migrations/ │ │ │ │ ├── 20180519095317_Creates_User_Table.cfc │ │ │ │ ├── 20180519100056_Creates_Roles_Table.cfc │ │ │ │ ├── 20180519100244_Creates_Permissions_Table.cfc │ │ │ │ ├── 20180519100412_Creates_RolePermissions_Table.cfc │ │ │ │ ├── 20180519100428_Creates_UserPermissions_Table.cfc │ │ │ │ ├── 20180519100429_Creates_Settings_Table.cfc │ │ │ │ ├── 20180519100430_Creates_Auditlog_Table.cfc │ │ │ │ ├── 20180519105943_Adds_Default_Roles.cfc │ │ │ │ ├── 20180519105944_Adds_Default_UserAccounts.cfc │ │ │ │ ├── 20180519105945_Adds_Default_Settings.cfc │ │ │ │ ├── 20180519105946_Adds_Default_Permissions.cfc │ │ │ │ ├── 20180519105947_Adds_Default_UserPermissions.cfc │ │ │ │ └── 20180519105948_Adds_Dummy_Auditlogs.cfc │ │ │ ├── models/ │ │ │ │ ├── Auditlog.cfc │ │ │ │ ├── Model.cfc │ │ │ │ ├── Permission.cfc │ │ │ │ ├── Role.cfc │ │ │ │ ├── RolePermission.cfc │ │ │ │ ├── Setting.cfc │ │ │ │ ├── User.cfc │ │ │ │ ├── UserPermission.cfc │ │ │ │ └── auth/ │ │ │ │ ├── LDAP.cfc │ │ │ │ └── Local.cfc │ │ │ ├── snippets/ │ │ │ │ ├── ActionContent.txt │ │ │ │ ├── ApiControllerContent.txt │ │ │ │ ├── BoxJSON.txt │ │ │ │ ├── CRUDContent.txt │ │ │ │ ├── ConfigAppContent.txt │ │ │ │ ├── ConfigDataSourceH2Content.txt │ │ │ │ ├── ConfigReloadPasswordContent.txt │ │ │ │ ├── ConfigRoutes.txt │ │ │ │ ├── ControllerContent.txt │ │ │ │ ├── DBMigrate.txt │ │ │ │ ├── ModelContent.txt │ │ │ │ ├── ServerJSON.txt │ │ │ │ ├── ViewContent.txt │ │ │ │ ├── WheelsBoxJSON.txt │ │ │ │ ├── bootstrap/ │ │ │ │ │ ├── layout.cfm │ │ │ │ │ └── settings.cfm │ │ │ │ ├── crud/ │ │ │ │ │ ├── _form.txt │ │ │ │ │ ├── edit.txt │ │ │ │ │ ├── index.txt │ │ │ │ │ ├── new.txt │ │ │ │ │ └── show.txt │ │ │ │ ├── dbmigrate/ │ │ │ │ │ ├── announce.txt │ │ │ │ │ ├── blank.txt │ │ │ │ │ ├── change-column.txt │ │ │ │ │ ├── change-table.txt │ │ │ │ │ ├── create-column.txt │ │ │ │ │ ├── create-index.txt │ │ │ │ │ ├── create-record.txt │ │ │ │ │ ├── create-table.txt │ │ │ │ │ ├── execute.txt │ │ │ │ │ ├── remove-column.txt │ │ │ │ │ ├── remove-index.txt │ │ │ │ │ ├── remove-record.txt │ │ │ │ │ ├── remove-table.txt │ │ │ │ │ ├── rename-column.txt │ │ │ │ │ ├── rename-table.txt │ │ │ │ │ └── update-record.txt │ │ │ │ └── tests/ │ │ │ │ ├── controller.txt │ │ │ │ ├── model.txt │ │ │ │ └── view.txt │ │ │ └── views/ │ │ │ ├── accounts/ │ │ │ │ ├── edit.cfm │ │ │ │ ├── resetPassword.cfm │ │ │ │ └── show.cfm │ │ │ ├── admin/ │ │ │ │ ├── auditlogs/ │ │ │ │ │ ├── _filter.cfm │ │ │ │ │ ├── _modal.cfm │ │ │ │ │ └── index.cfm │ │ │ │ ├── permissions/ │ │ │ │ │ ├── _form.cfm │ │ │ │ │ ├── edit.cfm │ │ │ │ │ └── index.cfm │ │ │ │ ├── roles/ │ │ │ │ │ ├── _form.cfm │ │ │ │ │ ├── edit.cfm │ │ │ │ │ ├── index.cfm │ │ │ │ │ └── new.cfm │ │ │ │ ├── settings/ │ │ │ │ │ ├── _form.cfm │ │ │ │ │ ├── edit.cfm │ │ │ │ │ └── index.cfm │ │ │ │ ├── userpermissions/ │ │ │ │ │ └── index.cfm │ │ │ │ └── users/ │ │ │ │ ├── _filter.cfm │ │ │ │ ├── edit.cfm │ │ │ │ ├── form/ │ │ │ │ │ ├── _auth.cfm │ │ │ │ │ ├── _details.cfm │ │ │ │ │ └── _role.cfm │ │ │ │ ├── index.cfm │ │ │ │ ├── new.cfm │ │ │ │ └── show.cfm │ │ │ ├── emails/ │ │ │ │ ├── _footer.cfm │ │ │ │ ├── _header.cfm │ │ │ │ ├── passwordReset.cfm │ │ │ │ ├── passwordResetAdmin.cfm │ │ │ │ ├── passwordResetAdminPlain.cfm │ │ │ │ ├── passwordResetPlain.cfm │ │ │ │ ├── verify.cfm │ │ │ │ └── verifyPlain.cfm │ │ │ ├── helpers.cfm │ │ │ ├── layout/ │ │ │ │ ├── _footer.cfm │ │ │ │ └── _navigation.cfm │ │ │ ├── layout.cfm │ │ │ ├── main/ │ │ │ │ └── index.cfm │ │ │ ├── passwordresets/ │ │ │ │ ├── edit.cfm │ │ │ │ └── new.cfm │ │ │ ├── register/ │ │ │ │ └── new.cfm │ │ │ ├── sessions/ │ │ │ │ └── new.cfm │ │ │ └── wheels/ │ │ │ ├── layout.cfm │ │ │ └── wheels.cfm │ │ ├── box.json │ │ ├── config/ │ │ │ ├── app.cfm │ │ │ ├── development/ │ │ │ │ └── settings.cfm │ │ │ ├── environment.cfm │ │ │ ├── maintenance/ │ │ │ │ └── settings.cfm │ │ │ ├── production/ │ │ │ │ └── settings.cfm │ │ │ ├── routes.cfm │ │ │ ├── settings.cfm │ │ │ └── testing/ │ │ │ └── settings.cfm │ │ ├── db/ │ │ │ └── .keep │ │ ├── plugins/ │ │ │ ├── .keep │ │ │ ├── FlashMessagesBootstrap/ │ │ │ │ ├── FlashMessagesBootstrap.cfc │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── box.json │ │ │ │ ├── index.cfm │ │ │ │ └── stylesheets/ │ │ │ │ └── bootstrap.min.cfm │ │ │ ├── authenticateThis/ │ │ │ │ ├── authenticateThis.cfc │ │ │ │ ├── box.json │ │ │ │ ├── index.cfm │ │ │ │ └── tests/ │ │ │ │ ├── AuthenticateTest.cfc │ │ │ │ └── _assets/ │ │ │ │ └── models/ │ │ │ │ └── dummy.cfc │ │ │ └── jsconfirm/ │ │ │ ├── JSConfirm.cfc │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── box.json │ │ │ └── index.cfm │ │ ├── public/ │ │ │ ├── Application.cfc │ │ │ ├── files/ │ │ │ │ └── .keep │ │ │ ├── images/ │ │ │ │ └── .keep │ │ │ ├── index.cfm │ │ │ ├── javascripts/ │ │ │ │ ├── .keep │ │ │ │ ├── custom.js │ │ │ │ └── daterangepicker.js │ │ │ ├── miscellaneous/ │ │ │ │ └── Application.cfc │ │ │ ├── stylesheets/ │ │ │ │ ├── .keep │ │ │ │ ├── custom.css │ │ │ │ └── daterangepicker.css │ │ │ ├── test-mcp.cfm │ │ │ └── urlrewrite.xml │ │ ├── server.json │ │ └── tests/ │ │ ├── RocketUnit/ │ │ │ ├── Test.cfc │ │ │ ├── functions/ │ │ │ │ ├── Auth.cfc │ │ │ │ ├── Permissions.cfc │ │ │ │ ├── Utils.cfc │ │ │ │ └── models/ │ │ │ │ ├── Auditlog.cfc │ │ │ │ ├── Permission.cfc │ │ │ │ ├── Role.cfc │ │ │ │ └── User.cfc │ │ │ └── requests/ │ │ │ ├── Accounts.cfc │ │ │ ├── Main.cfc │ │ │ └── Sessions.cfc │ │ ├── _assets/ │ │ │ ├── controllers/ │ │ │ │ └── Controller.cfc │ │ │ ├── files/ │ │ │ │ └── .keep │ │ │ ├── migrator/ │ │ │ │ └── migrations/ │ │ │ │ └── .keep │ │ │ ├── models/ │ │ │ │ └── Model.cfc │ │ │ ├── plugins/ │ │ │ │ └── .keep │ │ │ └── views/ │ │ │ ├── .keep │ │ │ ├── helpers.cfm │ │ │ └── layout.cfm │ │ ├── populate.cfm │ │ ├── routes.cfm │ │ ├── runner.cfm │ │ └── specs/ │ │ └── functions/ │ │ └── ExampleSpec.cfc │ └── tweet/ │ ├── .ai/ │ │ ├── CONTRIBUTION_SUMMARY.md │ │ ├── MCP-ENFORCEMENT.md │ │ ├── QUICK_REFERENCE.md │ │ ├── README.md │ │ ├── cfml/ │ │ │ ├── README.md │ │ │ ├── advanced/ │ │ │ │ └── closures.md │ │ │ ├── best-practices/ │ │ │ │ ├── modern-patterns.md │ │ │ │ └── performance.md │ │ │ ├── components/ │ │ │ │ ├── component-basics.md │ │ │ │ ├── functions.md │ │ │ │ └── properties.md │ │ │ ├── control-flow/ │ │ │ │ ├── conditionals.md │ │ │ │ ├── exception-handling.md │ │ │ │ └── loops.md │ │ │ ├── data-types/ │ │ │ │ ├── arrays/ │ │ │ │ │ ├── array-creation.md │ │ │ │ │ ├── array-iteration.md │ │ │ │ │ └── array-methods.md │ │ │ │ ├── numbers/ │ │ │ │ │ └── numeric-basics.md │ │ │ │ ├── scopes/ │ │ │ │ │ └── variables-scope.md │ │ │ │ ├── strings/ │ │ │ │ │ ├── string-functions.md │ │ │ │ │ ├── string-interpolation.md │ │ │ │ │ └── string-literals.md │ │ │ │ ├── structures/ │ │ │ │ │ ├── struct-creation.md │ │ │ │ │ └── structure-basics.md │ │ │ │ ├── variable-scopes.md │ │ │ │ └── variables.md │ │ │ ├── database/ │ │ │ │ └── query-basics.md │ │ │ └── syntax/ │ │ │ ├── basic-syntax.md │ │ │ ├── cfscript-vs-tags.md │ │ │ ├── comments.md │ │ │ └── hash-escaping.md │ │ └── wheels/ │ │ ├── README.md │ │ ├── cli/ │ │ │ └── generators/ │ │ │ ├── controllers.md │ │ │ ├── migrations.md │ │ │ ├── models.md │ │ │ └── scaffolds.md │ │ ├── communication/ │ │ │ └── email-sending.md │ │ ├── configuration/ │ │ │ ├── application.md │ │ │ ├── best-practices.md │ │ │ ├── environments.md │ │ │ ├── framework-settings.md │ │ │ ├── overview.md │ │ │ ├── routing.md │ │ │ ├── security.md │ │ │ └── troubleshooting.md │ │ ├── controllers/ │ │ │ ├── api.md │ │ │ ├── architecture.md │ │ │ ├── filters/ │ │ │ │ ├── authentication.md │ │ │ │ ├── authorization.md │ │ │ │ └── before-after.md │ │ │ ├── filters.md │ │ │ ├── http-detection.md │ │ │ ├── model-interactions.md │ │ │ ├── params/ │ │ │ │ └── verification.md │ │ │ ├── rendering/ │ │ │ │ ├── json.md │ │ │ │ ├── redirects.md │ │ │ │ └── views.md │ │ │ ├── rendering.md │ │ │ ├── security.md │ │ │ └── testing.md │ │ ├── core-concepts/ │ │ │ ├── mvc-architecture/ │ │ │ │ ├── controllers.md │ │ │ │ ├── conventions.md │ │ │ │ ├── models.md │ │ │ │ └── views.md │ │ │ ├── orm/ │ │ │ │ ├── mapping-basics.md │ │ │ │ ├── primary-keys.md │ │ │ │ ├── properties.md │ │ │ │ └── tableless-models.md │ │ │ ├── rails-comparison.md │ │ │ └── routing/ │ │ │ ├── basics.md │ │ │ ├── http-methods.md │ │ │ ├── patterns.md │ │ │ └── resources.md │ │ ├── database/ │ │ │ ├── associations/ │ │ │ │ ├── belongs-to.md │ │ │ │ ├── has-many.md │ │ │ │ ├── has-one.md │ │ │ │ └── nested-properties.md │ │ │ ├── migrations/ │ │ │ │ ├── advanced-operations.md │ │ │ │ ├── best-practices.md │ │ │ │ ├── column-types.md │ │ │ │ ├── creating-migrations.md │ │ │ │ ├── date-function-issues.md │ │ │ │ ├── rollback.md │ │ │ │ └── running-migrations.md │ │ │ ├── queries/ │ │ │ │ ├── creating-records.md │ │ │ │ ├── deleting-records.md │ │ │ │ ├── finding-records.md │ │ │ │ └── updating-records.md │ │ │ └── validations/ │ │ │ ├── custom.md │ │ │ ├── format.md │ │ │ ├── presence.md │ │ │ └── uniqueness.md │ │ ├── files/ │ │ │ └── downloads.md │ │ ├── integration/ │ │ │ └── modern-frontend-stack.md │ │ ├── models/ │ │ │ ├── advanced-features.md │ │ │ ├── advanced-patterns.md │ │ │ ├── architecture.md │ │ │ ├── associations.md │ │ │ ├── best-practices.md │ │ │ ├── callbacks.md │ │ │ ├── methods-reference.md │ │ │ ├── performance.md │ │ │ ├── testing.md │ │ │ ├── user-authentication.md │ │ │ └── validations.md │ │ ├── patterns/ │ │ │ ├── authentication.md │ │ │ ├── crud.md │ │ │ └── validation-templates.md │ │ ├── security/ │ │ │ ├── csrf-protection.md │ │ │ └── https-detection.md │ │ ├── snippets/ │ │ │ ├── controller-snippets.md │ │ │ └── model-snippets.md │ │ ├── testing/ │ │ │ └── browser-automation-patterns.md │ │ ├── troubleshooting/ │ │ │ ├── common-errors.md │ │ │ └── form-helper-errors.md │ │ ├── views/ │ │ │ ├── advanced-patterns.md │ │ │ ├── architecture.md │ │ │ ├── best-practices.md │ │ │ ├── data-handling.md │ │ │ ├── forms.md │ │ │ ├── helpers/ │ │ │ │ ├── custom.md │ │ │ │ ├── dates.md │ │ │ │ ├── forms.md │ │ │ │ └── links.md │ │ │ ├── helpers.md │ │ │ ├── layouts/ │ │ │ │ ├── content-for.md │ │ │ │ ├── partials.md │ │ │ │ └── structure.md │ │ │ ├── layouts.md │ │ │ ├── partials.md │ │ │ ├── query-association-patterns.md │ │ │ └── testing.md │ │ └── workflows/ │ │ ├── documentation-loading-strategy.md │ │ ├── enhanced-mcp-develop-specification.md │ │ ├── intelligent-analysis-planning-engine.md │ │ ├── pre-implementation.md │ │ └── template-driven-implementation-patterns.md │ ├── .claude/ │ │ ├── .devcontainer/ │ │ │ └── devcontainer.json │ │ ├── commands/ │ │ │ └── wheels_execute.md │ │ ├── settings.local.json │ │ └── skills/ │ │ ├── README.md │ │ ├── SKILLS-QUICK-START.md │ │ ├── wheels-anti-pattern-detector/ │ │ │ └── SKILL.md │ │ ├── wheels-api-generator/ │ │ │ └── SKILL.md │ │ ├── wheels-auth-generator/ │ │ │ └── SKILL.md │ │ ├── wheels-controller-generator/ │ │ │ └── SKILL.md │ │ ├── wheels-debugging/ │ │ │ └── SKILL.md │ │ ├── wheels-deployment/ │ │ │ └── SKILL.md │ │ ├── wheels-documentation-generator/ │ │ │ └── SKILL.md │ │ ├── wheels-migration-generator/ │ │ │ └── SKILL.md │ │ ├── wheels-model-generator/ │ │ │ ├── SKILL.md │ │ │ └── templates/ │ │ │ ├── basic-model.cfc │ │ │ └── user-authentication-model.cfc │ │ ├── wheels-refactoring/ │ │ │ └── SKILL.md │ │ ├── wheels-test-generator/ │ │ │ └── SKILL.md │ │ └── wheels-view-generator/ │ │ └── SKILL.md │ ├── .gitignore │ ├── .opencode/ │ │ └── command/ │ │ └── wheels_execute.md │ ├── .vscode/ │ │ ├── wheels-test.code-snippets │ │ └── wheels.code-snippets │ ├── AGENTS.md │ ├── LICENSE │ ├── README.md │ ├── app/ │ │ ├── controllers/ │ │ │ ├── Controller.cfc │ │ │ ├── Follows.cfc │ │ │ ├── Likes.cfc │ │ │ ├── Sessions.cfc │ │ │ ├── Tweets.cfc │ │ │ └── Users.cfc │ │ ├── events/ │ │ │ ├── onabort.cfm │ │ │ ├── onapplicationend.cfm │ │ │ ├── onapplicationstart.cfm │ │ │ ├── onerror.cfm │ │ │ ├── onerror.json.cfm │ │ │ ├── onerror.xml.cfm │ │ │ ├── onmaintenance.cfm │ │ │ ├── onmissingtemplate.cfm │ │ │ ├── onrequestend.cfm │ │ │ ├── onrequeststart.cfm │ │ │ ├── onsessionend.cfm │ │ │ └── onsessionstart.cfm │ │ ├── global/ │ │ │ └── functions.cfm │ │ ├── jobs/ │ │ │ └── ProcessOrdersJob.cfc │ │ ├── lib/ │ │ │ └── .keep │ │ ├── mailers/ │ │ │ └── UserNotificationsMailer.cfc │ │ ├── migrator/ │ │ │ ├── .keep │ │ │ └── migrations/ │ │ │ ├── .keep │ │ │ ├── 20251021133355_CreateUsersTable.cfc │ │ │ ├── 20251021133401_CreateTweetsTable.cfc │ │ │ ├── 20251021133404_CreateLikesTable.cfc │ │ │ └── 20251021133406_CreateFollowsTable.cfc │ │ ├── models/ │ │ │ ├── Follow.cfc │ │ │ ├── Like.cfc │ │ │ ├── Model.cfc │ │ │ ├── Tweet.cfc │ │ │ └── User.cfc │ │ ├── snippets/ │ │ │ ├── ActionContent.txt │ │ │ ├── ApiControllerContent.txt │ │ │ ├── BoxJSON.txt │ │ │ ├── CRUDContent.txt │ │ │ ├── ConfigAppContent.txt │ │ │ ├── ConfigDataSourceH2Content.txt │ │ │ ├── ConfigReloadPasswordContent.txt │ │ │ ├── ConfigRoutes.txt │ │ │ ├── ControllerContent.txt │ │ │ ├── DBMigrate.txt │ │ │ ├── ModelContent.txt │ │ │ ├── ServerJSON.txt │ │ │ ├── ViewContent.txt │ │ │ ├── WheelsBoxJSON.txt │ │ │ ├── bootstrap/ │ │ │ │ ├── layout.cfm │ │ │ │ └── settings.cfm │ │ │ ├── crud/ │ │ │ │ ├── _form.txt │ │ │ │ ├── edit.txt │ │ │ │ ├── index.txt │ │ │ │ ├── new.txt │ │ │ │ └── show.txt │ │ │ ├── dbmigrate/ │ │ │ │ ├── announce.txt │ │ │ │ ├── blank.txt │ │ │ │ ├── change-column.txt │ │ │ │ ├── change-table.txt │ │ │ │ ├── create-column.txt │ │ │ │ ├── create-index.txt │ │ │ │ ├── create-record.txt │ │ │ │ ├── create-table.txt │ │ │ │ ├── execute.txt │ │ │ │ ├── remove-column.txt │ │ │ │ ├── remove-index.txt │ │ │ │ ├── remove-record.txt │ │ │ │ ├── remove-table.txt │ │ │ │ ├── rename-column.txt │ │ │ │ ├── rename-table.txt │ │ │ │ └── update-record.txt │ │ │ ├── mcp-server.js.txt │ │ │ └── tests/ │ │ │ ├── controller.txt │ │ │ ├── model.txt │ │ │ └── view.txt │ │ └── views/ │ │ ├── helpers.cfm │ │ ├── layout.cfm │ │ ├── sessions/ │ │ │ └── new.cfm │ │ ├── tweets/ │ │ │ └── index.cfm │ │ ├── usernotificationsmailer/ │ │ │ └── sendEmail.cfm │ │ └── users/ │ │ ├── edit.cfm │ │ ├── new.cfm │ │ └── show.cfm │ ├── box.json │ ├── config/ │ │ ├── app.cfm │ │ ├── development/ │ │ │ └── settings.cfm │ │ ├── environment.cfm │ │ ├── maintenance/ │ │ │ └── settings.cfm │ │ ├── production/ │ │ │ └── settings.cfm │ │ ├── routes.cfm │ │ ├── settings.cfm │ │ └── testing/ │ │ └── settings.cfm │ ├── plugins/ │ │ └── .keep │ ├── public/ │ │ ├── .htaccess │ │ ├── Application.cfc │ │ ├── files/ │ │ │ └── .keep │ │ ├── images/ │ │ │ └── .keep │ │ ├── index.bxm │ │ ├── index.cfm │ │ ├── javascripts/ │ │ │ └── .keep │ │ ├── miscellaneous/ │ │ │ └── Application.cfc │ │ ├── stylesheets/ │ │ │ └── .keep │ │ └── urlrewrite.xml │ ├── server.json │ ├── tests/ │ │ ├── _assets/ │ │ │ ├── controllers/ │ │ │ │ └── Controller.cfc │ │ │ ├── files/ │ │ │ │ └── .keep │ │ │ ├── migrator/ │ │ │ │ └── migrations/ │ │ │ │ └── .keep │ │ │ ├── models/ │ │ │ │ └── Model.cfc │ │ │ ├── plugins/ │ │ │ │ └── .keep │ │ │ └── views/ │ │ │ ├── .keep │ │ │ ├── helpers.cfm │ │ │ └── layout.cfm │ │ ├── populate.cfm │ │ ├── routes.cfm │ │ ├── runner.cfm │ │ └── specs/ │ │ └── functions/ │ │ └── ExampleSpec.cfc │ ├── vendor/ │ │ └── .keep │ └── wheels-base-template-3.0.0-SNAPSHOT.rc.1+1053-20251021194426 ├── lucee.json ├── package.json ├── playwright.config.ts ├── plugins/ │ └── .keep ├── public/ │ ├── .htaccess │ ├── Application.cfc │ ├── ApplicationProxy.cfc │ ├── files/ │ │ └── .keep │ ├── images/ │ │ └── .keep │ ├── index.bxm │ ├── index.cfm │ ├── javascripts/ │ │ └── .keep │ ├── miscellaneous/ │ │ └── Application.cfc │ ├── stylesheets/ │ │ └── .keep │ └── urlrewrite.xml ├── server.json ├── tests/ │ ├── README.md │ ├── TestRunner.cfc │ ├── _assets/ │ │ ├── controllers/ │ │ │ └── Controller.cfc │ │ ├── files/ │ │ │ └── .keep │ │ ├── migrator/ │ │ │ └── migrations/ │ │ │ └── .keep │ │ ├── models/ │ │ │ ├── Author.cfc │ │ │ ├── Model.cfc │ │ │ └── Post.cfc │ │ ├── plugins/ │ │ │ └── .keep │ │ └── views/ │ │ ├── .keep │ │ ├── helpers.cfm │ │ └── layout.cfm │ ├── populate.cfm │ ├── routes.cfm │ ├── runner.cfm │ └── specs/ │ └── functional/ │ └── ExampleSpec.cfc ├── tools/ │ ├── article-tests/ │ │ ├── Probe.cfc │ │ ├── Probes.cfc │ │ ├── README.md │ │ ├── boxlang.json │ │ ├── edge-cases.cfm │ │ ├── run.cfm │ │ └── run.sh │ ├── auto-merge.sh │ ├── build/ │ │ ├── base/ │ │ │ ├── .gitignore │ │ │ ├── .mcp.json │ │ │ ├── .opencode.json │ │ │ ├── README.md │ │ │ ├── box.json │ │ │ ├── config/ │ │ │ │ ├── app.cfm │ │ │ │ └── settings.cfm │ │ │ └── server.json │ │ ├── cli/ │ │ │ ├── README.md │ │ │ └── box.json │ │ ├── core/ │ │ │ ├── README.md │ │ │ ├── box.json │ │ │ └── wheels.json │ │ ├── lib/ │ │ │ └── ant-contrib-1.0b3.jar │ │ └── scripts/ │ │ ├── README.md │ │ ├── build-base.sh │ │ ├── build-cli.sh │ │ ├── build-core.sh │ │ ├── build-starterApp.sh │ │ ├── generate-changelog.sh │ │ ├── prepare-base.sh │ │ ├── prepare-cli.sh │ │ ├── prepare-core.sh │ │ ├── prepare-starterApp.sh │ │ ├── publish-to-forgebox.sh │ │ └── test-forgebox-package.sh │ ├── ci/ │ │ ├── lucee.ci.json │ │ ├── run-tests.sh │ │ ├── setup-datasources.cfm │ │ └── smoke-test-module.sh │ ├── deploy-config-diff.sh │ ├── deploy-dry-run-diff.sh │ ├── deploy-dry-run-normalize.py │ ├── deploy-e2e-down.sh │ ├── deploy-e2e-up.sh │ ├── deploy-sshd-down.sh │ ├── deploy-sshd-up.sh │ ├── deploy-verb-smoke.sh │ ├── distribution-drafts/ │ │ ├── README.md │ │ ├── apt-repo/ │ │ │ ├── README.md │ │ │ ├── scripts/ │ │ │ │ └── regenerate-apt-metadata.sh │ │ │ ├── templates/ │ │ │ │ ├── aptftparchive.conf │ │ │ │ ├── index.html │ │ │ │ └── wheels.gpg.placeholder │ │ │ └── workflows/ │ │ │ └── wheels-released.yml │ │ ├── homebrew/ │ │ │ ├── auto-update-channel-patch.md │ │ │ ├── bleeding-edge-update.yml │ │ │ └── wheels-be.rb │ │ ├── linux-packages/ │ │ │ ├── README.md │ │ │ ├── build-linux-packages.sh │ │ │ ├── nfpm-wheels-be.yaml │ │ │ └── nfpm-wheels.yaml │ │ ├── scoop/ │ │ │ ├── README.md │ │ │ ├── build-manifests.py │ │ │ ├── validate.py │ │ │ ├── wheels-be.json │ │ │ └── wheels.json │ │ ├── snapshots-repo/ │ │ │ ├── README.md │ │ │ └── cleanup-old-snapshots.yml │ │ ├── winget/ │ │ │ ├── README.md │ │ │ ├── Wheels.Wheels/ │ │ │ │ └── 4.0.0/ │ │ │ │ ├── Wheels.Wheels.installer.yaml │ │ │ │ ├── Wheels.Wheels.locale.en-US.yaml │ │ │ │ └── Wheels.Wheels.yaml │ │ │ ├── Wheels.WheelsBE/ │ │ │ │ └── 4.0.0-snapshot.1789/ │ │ │ │ ├── Wheels.WheelsBE.installer.yaml │ │ │ │ ├── Wheels.WheelsBE.locale.en-US.yaml │ │ │ │ └── Wheels.WheelsBE.yaml │ │ │ └── validate.py │ │ └── yum-repo/ │ │ ├── README.md │ │ ├── scripts/ │ │ │ └── regenerate-yum-metadata.sh │ │ ├── templates/ │ │ │ ├── index.html │ │ │ ├── wheels-be.repo │ │ │ ├── wheels.gpg.placeholder │ │ │ └── wheels.repo │ │ └── workflows/ │ │ └── wheels-released.yml │ ├── docker/ │ │ ├── .gitignore │ │ ├── Oracle/ │ │ │ └── 01-configure-cursors.sql │ │ ├── README.md │ │ ├── adobe2018/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ └── .keep │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── adobe2021/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ ├── .keep │ │ │ │ └── sqlite-jdbc-3.50.3.0.jar │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── adobe2023/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ ├── .keep │ │ │ │ └── sqlite-jdbc-3.50.3.0.jar │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── adobe2025/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ ├── .keep │ │ │ │ └── sqlite-jdbc-3.50.3.0.jar │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── boxlang/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ └── .keep │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── dev/ │ │ │ ├── cfconfig-h2.json │ │ │ ├── cfconfig-mysql.json │ │ │ └── cfconfig-postgres.json │ │ ├── github/ │ │ │ ├── README.md │ │ │ ├── Tasks.cfc │ │ │ ├── core-tests.sh │ │ │ ├── db-up.sh │ │ │ ├── functions.sh │ │ │ ├── server-up.sh │ │ │ └── wait-for-it.sh │ │ ├── lucee5/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ └── .keep │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── lucee6/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── lib/ │ │ │ │ └── .keep │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── lucee7/ │ │ │ ├── CFConfig-actions.json │ │ │ ├── CFConfig.json │ │ │ ├── Dockerfile │ │ │ ├── box.json │ │ │ ├── server.json │ │ │ └── settings.cfm │ │ ├── sqlserver/ │ │ │ ├── APPLE_SILICON.md │ │ │ ├── Dockerfile │ │ │ ├── Dockerfile_CICD │ │ │ ├── README.md │ │ │ └── init-db.sh │ │ └── testui/ │ │ ├── .gitignore │ │ ├── DEVELOPMENT.md │ │ ├── DOCKER-INTEGRATION.md │ │ ├── DOCKER-README.md │ │ ├── DOCKER-USAGE.md │ │ ├── Dockerfile │ │ ├── Dockerfile.dev │ │ ├── IMPLEMENTATION-NOTES.md │ │ ├── README.md │ │ ├── docker-build.sh │ │ ├── docker-compose.dev.yml │ │ ├── docker-compose.test.yml │ │ ├── docker-entrypoint.sh │ │ ├── docker-test.sh │ │ ├── index.html │ │ ├── nginx.conf │ │ ├── package.json │ │ ├── proxy_buffer_size.conf │ │ ├── public/ │ │ │ └── error.html │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── assets/ │ │ │ │ └── main.css │ │ │ ├── components/ │ │ │ │ ├── PreflightStatus.vue │ │ │ │ ├── StatusBadge.vue │ │ │ │ ├── TestResultItem.vue │ │ │ │ └── TestStats.vue │ │ │ ├── env.d.ts │ │ │ ├── main.ts │ │ │ ├── router/ │ │ │ │ └── index.ts │ │ │ ├── services/ │ │ │ │ ├── docker.service.ts │ │ │ │ ├── preflight.service.ts │ │ │ │ └── test.service.ts │ │ │ ├── shims-vue.d.ts │ │ │ ├── stores/ │ │ │ │ ├── databaseStore.ts │ │ │ │ ├── engineStore.ts │ │ │ │ ├── testStore.ts │ │ │ │ └── themeStore.ts │ │ │ ├── types/ │ │ │ │ └── index.ts │ │ │ ├── types.ts │ │ │ ├── utils/ │ │ │ │ ├── api.ts │ │ │ │ └── theme.ts │ │ │ └── views/ │ │ │ ├── HomeView.vue │ │ │ └── TestsView.vue │ │ ├── supervisord.conf │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── docs-validation/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── agent/ │ │ │ ├── prompt-guide.md │ │ │ └── prompt.md │ │ ├── lib/ │ │ │ ├── agent.mjs │ │ │ ├── guides.mjs │ │ │ ├── reference-store.mjs │ │ │ ├── snapshot.mjs │ │ │ ├── source-map.mjs │ │ │ ├── state.mjs │ │ │ └── tools.mjs │ │ ├── orchestrate.mjs │ │ ├── package.json │ │ └── state.json │ ├── install-playwright.sh │ ├── installer/ │ │ ├── chocolatey/ │ │ │ ├── README.md │ │ │ ├── build-choco.ps1 │ │ │ ├── lucli.nuspec │ │ │ └── tools/ │ │ │ ├── VERIFICATION.txt │ │ │ ├── chocolateyinstall.ps1 │ │ │ └── chocolateyuninstall.ps1 │ │ ├── macos/ │ │ │ ├── .gitignore │ │ │ ├── Info.plist │ │ │ ├── README.md │ │ │ ├── WheelsInstallerApp.swift │ │ │ ├── assets/ │ │ │ │ └── wheels_logo.icns │ │ │ ├── build-swift.sh │ │ │ ├── create-dmg.sh │ │ │ ├── install-wheels │ │ │ └── installer/ │ │ │ └── wheels-installer.dmg │ │ └── windows/ │ │ ├── README.md │ │ ├── install-wheels.iss │ │ └── install-wheels.ps1 │ ├── issue-resolver/ │ │ ├── lib/ │ │ │ ├── config.ts │ │ │ ├── github.ts │ │ │ └── session.ts │ │ ├── run.ts │ │ ├── setup.ts │ │ └── tsconfig.json │ ├── lucee-extensions/ │ │ └── sqlite/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── build.sh │ │ ├── install.sh │ │ └── src/ │ │ ├── SQLite.cfc │ │ ├── build.properties │ │ └── sqlite-jdbc-3.49.1.0.jar │ ├── scripts/ │ │ ├── integration-test.sh │ │ └── setup.sh │ ├── test-cli-e2e.sh │ ├── test-cli-local.sh │ ├── test-local.sh │ ├── test-matrix.sh │ ├── test-onboarding.sh │ ├── test-tutorial-ch7.sh │ ├── vscode-ext/ │ │ ├── .gitignore │ │ ├── .vscodeignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── assets/ │ │ │ └── templates/ │ │ │ ├── controller.cfc │ │ │ ├── model.cfc │ │ │ ├── view-edit.cfm │ │ │ ├── view-index.cfm │ │ │ ├── view-new.cfm │ │ │ └── view-show.cfm │ │ ├── package.json │ │ ├── snippets/ │ │ │ ├── wheels-api.json │ │ │ └── wheels.code-snippets │ │ └── src/ │ │ └── extension.js │ └── workspace/ │ └── .keep ├── web/ │ ├── .prettierignore │ ├── .prettierrc.json │ ├── README.md │ ├── content/ │ │ └── blog/ │ │ └── posts/ │ │ ├── 0-8-2-released.md │ │ ├── 0-8-3-final-beta-release.md │ │ ├── 0-9-1-available.md │ │ ├── 0-9-2-release.md │ │ ├── 0-9-final-beta-cycle.md │ │ ├── 1-0-1-maintenance-release.md │ │ ├── 1-0-2-maintenance-release.md │ │ ├── 1-0-we-are-production-ready.md │ │ ├── 1-1-1-released.md │ │ ├── 1-1-4-released.md │ │ ├── 1-1-6-released.md │ │ ├── 1-1-8-released.md │ │ ├── 1-1-beta-1-available.md │ │ ├── 1-3-0-released.md │ │ ├── 1-3-1-maintenance-release.md │ │ ├── 1-3-2-maintenance-release.md │ │ ├── 1-3-3-maintenance-release.md │ │ ├── 10-years-of-cfwheels-welcome-adam-cfwheels-2-x.md │ │ ├── andy-bellenie-joins-core-team.md │ │ ├── andy-bellenie-to-speak-at-scotch-on-the-rocks-2013.md │ │ ├── another-great-cf-objective-is-over-wheels.md │ │ ├── apologies-duplicate-entries-rss.md │ │ ├── associations-chapter-in-documentation.md │ │ ├── background-jobs-without-redis.md │ │ ├── behind-the-scenes-how-a-single-commit-becomes-a-running-application-across-40-configurations.md │ │ ├── building-search-forms-with-tableless-models-in-cfwheels.md │ │ ├── calling-all-plugin-authors-time-for-2-x-.md │ │ ├── celebrating-20-years-of-cfwheels-a-look-back-and-a-step-forward-as-wheels-dev.md │ │ ├── cf-objective-2011.md │ │ ├── cf-objective-finale.md │ │ ├── cf-objective-starts-and-free-t-shirts.md │ │ ├── cfmeetup-intro-wheels-orm.md │ │ ├── cfmeetup-presentation-thursday.md │ │ ├── cfunited-2010-on-wheels.md │ │ ├── cfwheels-1-4-0-released-new-documentation-too.md │ │ ├── cfwheels-1-4-1-maintenance-release.md │ │ ├── cfwheels-1-4-2-maintenance-release.md │ │ ├── cfwheels-1-4-3-maintenance-release.md │ │ ├── cfwheels-1-4-4-maintenance-release.md │ │ ├── cfwheels-1-4-5-maintenance-release.md │ │ ├── cfwheels-1-4-6-maintenance-release.md │ │ ├── cfwheels-2-0-0-beta-1-now-available.md │ │ ├── cfwheels-2-0-1-maintenance-release.md │ │ ├── cfwheels-2-0-2-security-release.md │ │ ├── cfwheels-2-0-released.md │ │ ├── cfwheels-2-1-0-beta-now-available.md │ │ ├── cfwheels-2-1-released.md │ │ ├── cfwheels-2-2-released.md │ │ ├── cfwheels-2-3-0-rc-1.md │ │ ├── cfwheels-2-3-0-released.md │ │ ├── cfwheels-added-to-the-htmx-server-side-examples-page.md │ │ ├── cfwheels-announces-a-bug-bounty.md │ │ ├── cfwheels-dotenvsettings-plugin-published.md │ │ ├── cfwheels-fully-embraces-forgebox-packages.md │ │ ├── cfwheels-guides-moved-to-gitbook.md │ │ ├── cfwheels-has-moved-to-github-discussions.md │ │ ├── cfwheels-htmx-plugin-published.md │ │ ├── cfwheels-joins-open-source-collective.md │ │ ├── cfwheels-on-cf-alive-the-sequel.md │ │ ├── cfwheels-on-cf-alive.md │ │ ├── cfwheels-v2-4-0-released.md │ │ ├── cfwheels-v2-5-0-released.md │ │ ├── cfwheels-x-dresshead-short-sleeved-dress-contrasting-wrap-details-irregular-hemline.md │ │ ├── changing-of-the-guards-at-cfwheels.md │ │ ├── cleaner-configuration-in-wheels-3-0-less-magic-more-clarity.md │ │ ├── come-get-your-fresh-0-7-release.md │ │ ├── congratulate-tony-petruzzi-lead-developer.md │ │ ├── contributing-to-wheels.md │ │ ├── core-team-updates.md │ │ ├── couple-blog-series.md │ │ ├── creating-a-basic-crud-interface-with-wheels-3-0.md │ │ ├── creating-a-mega-quick-json-api-in-cfwheels-2-x.md │ │ ├── creating-custom-urls-with-routes.md │ │ ├── debugging-plugin-performance-in-cfwheels-2-x-with-fusionreactor.md │ │ ├── documentation-updates-pages-sending-email-configurations.md │ │ ├── download-0-9-3.md │ │ ├── from-wirebox-to-wheelsdi.md │ │ ├── getting-started-video-tutorial.md │ │ ├── getting-the-example-app-up-and-running.md │ │ ├── hello-database-tutorial.md │ │ ├── help-us-test-the-coldfusion-on-wheels-1-1-4-release-candidate.md │ │ ├── how-oo-almost-destroyed-business.md │ │ ├── internal-documentation-in-cfwheels-2-0-beta.md │ │ ├── introducing-wheels-3-0-a-new-era-for-cfml-development.md │ │ ├── litepost-contest-ends-feb-19.md │ │ ├── litepost-contest-screencasts.md │ │ ├── litepost-contest-winners.md │ │ ├── litepost-contest.md │ │ ├── lucli-zero-docker-developer-experience.md │ │ ├── methods-tracking-change.md │ │ ├── moving-to-github.md │ │ ├── moving-towards-2-x-beta.md │ │ ├── multi-tenancy-built-in.md │ │ ├── new-chapter-object-validation.md │ │ ├── new-documentation-sending-files.md │ │ ├── new-documentation-using-layouts-chapter-new-tutorials.md │ │ ├── new-tutorial-wheels-ajax-and-you.md │ │ ├── presentation-mdcfug-tonight.md │ │ ├── release-candidate-1-0-rc1.md │ │ ├── release-candidate-1-1-rc-1.md │ │ ├── released-1-0-4.md │ │ ├── released-1-0-5.md │ │ ├── released-coldfusion-on-wheels-1-0-3.md │ │ ├── released-today-0-9-4.md │ │ ├── released-version-0-8.md │ │ ├── released-version-1-1-3.md │ │ ├── request-lifecycle-in-wheels-3-0-clearer-execution-order.md │ │ ├── screencast-basic-crud-interface-in-cfwheels-2-x.md │ │ ├── screencast-introduction-to-unit-testing-in-cfwheels-2-x.md │ │ ├── screencast-routing-in-cfwheels-2-x-part-2.md │ │ ├── screencast-routing-in-cfwheels-2-x.md │ │ ├── screencasts-are-back.md │ │ ├── security-fixes-for-1-1-7-and-1-0-6-released.md │ │ ├── security-hardening-in-wheels-4.md │ │ ├── skip-the-plugin-rate-limited-api.md │ │ ├── starting-2nd-beta-1-1.md │ │ ├── starting-a-new-cfwheels-project-with-the-cli.md │ │ ├── submit-feedback-uservoice.md │ │ ├── testing-in-wheels-4.md │ │ ├── testing-plugins-on-cfwheels-2-x-and-travis-ci-via-commandbox.md │ │ ├── the-cfwheels-channel-on-cfml-slack-has-been-archived.md │ │ ├── todomvc-implementation-with-cfwheels-and-htmx.md │ │ ├── tshirt-hosting-giveaways-cfunited.md │ │ ├── two-new-repositories-published.md │ │ ├── unit-testing-your-new-2-x-app-in-2-x-beta.md │ │ ├── upcoming-previous-presentations.md │ │ ├── upgrade-to-0-8-1.md │ │ ├── upgrade-to-1-1-5-today.md │ │ ├── upgrading-from-wheels-3x.md │ │ ├── version-1-1-2-released-today.md │ │ ├── version-1-1-is-here.md │ │ ├── way-new-collaboration.md │ │ ├── weekend-reading-new-documentation.md │ │ ├── welcome-don-humphreys-core-team.md │ │ ├── welcome-james-gibson-core-team.md │ │ ├── wheels-3-0-project-structure-what-changed-and-why-it-matters.md │ │ ├── wheels-3-0-request-handling-the-move-to-public-index-cfm.md │ │ ├── wheels-3-0-setting-up-your-development-environment.md │ │ ├── wheels-4-closing-the-maturity-gap.md │ │ ├── wheels-added-cfml-framework-generator-eclipse.md │ │ ├── wheels-api-documentation-available.md │ │ ├── wheels-blog-badges-wallpaper-t-shirts.md │ │ ├── wheels-cli-asset-commands-precompile-clean-clobber.md │ │ ├── wheels-cli-config-commands-check-diff-dump.md │ │ ├── wheels-cli-database-commands-db-create-db-drop.md │ │ ├── wheels-cli-environment-commands-set-show-merge-switch-validate.md │ │ ├── wheels-cli-essentials-inspect-your-app-with-about-get-commands.md │ │ ├── wheels-cli-matures-to-version-1-0.md │ │ ├── wheels-cli-modern-commands-for-faster-smarter-wheels-3-0-development.md │ │ ├── wheels-cli-plugin-commands-search-install-remove-init.md │ │ ├── wheels-cli-testing-commands-run-all-unit-integration-watch-coverage.md │ │ ├── wheels-cli-the-hidden-productivity-booster-for-wheels-developers.md │ │ ├── wheels-deploy-kamal-port.md │ │ ├── wheels-dev-goes-public-a-production-wheels-3-0-application-you-can-actually-study.md │ │ ├── wheels-hanging-with-big-boys.md │ │ ├── wheels-round-up-2009-12-11.md │ │ ├── wheels-screencasts-continue.md │ │ ├── wheels-vs-code-extension-supercharge-your-wheels-development.md │ │ └── why-we-rebuilt-our-ci-pipeline.md │ ├── package.json │ ├── packages/ │ │ └── ui/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── Footer.astro │ │ │ │ ├── Header.astro │ │ │ │ ├── Logo.astro │ │ │ │ ├── RssPill.astro │ │ │ │ └── starlight/ │ │ │ │ ├── EditLink.astro │ │ │ │ ├── Footer.astro │ │ │ │ ├── Header.astro │ │ │ │ ├── PageTitle.astro │ │ │ │ ├── SocialIcons.astro │ │ │ │ └── VersionSwitcher.astro │ │ │ ├── data/ │ │ │ │ └── versions.ts │ │ │ └── styles/ │ │ │ ├── base.css │ │ │ ├── starlight-theme.css │ │ │ └── tokens.css │ │ └── tsconfig.json │ ├── pnpm-workspace.yaml │ ├── scripts/ │ │ ├── README.md │ │ ├── generate-api-docs.mjs │ │ ├── recover-blog-images.mjs │ │ └── visual-regression.mjs │ ├── sites/ │ │ ├── api/ │ │ │ ├── astro.config.mjs │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── components/ │ │ │ │ │ └── FunctionSignature.astro │ │ │ │ ├── content/ │ │ │ │ │ └── docs/ │ │ │ │ │ ├── index.md │ │ │ │ │ ├── v1-4-5/ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ └── miscellaneous/ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ ├── adddefaultroutes.md │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ ├── addroute.md │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ ├── findlast.md │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ ├── findorcreateby-property.md │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ ├── renderpage.md │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ ├── toxhtml.md │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ ├── updateproperties.md │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ ├── valid.md │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ ├── validatesuniquenessof.md │ │ │ │ │ │ ├── validationtypeforproperty.md │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ ├── verifies.md │ │ │ │ │ │ ├── wordtruncate.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v2-0-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlast.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v2-1-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlast.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v2-2-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlastone.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v2-3-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlastone.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v2-4-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlastone.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v2-5-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ │ ├── assert.md │ │ │ │ │ │ │ ├── fail.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ └── testexample.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlastone.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ ├── test-model/ │ │ │ │ │ │ │ ├── debug.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ └── raised.md │ │ │ │ │ │ ├── test-model-configuration/ │ │ │ │ │ │ │ ├── afterall.md │ │ │ │ │ │ │ ├── beforeall.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── packagesetup.md │ │ │ │ │ │ │ ├── packageteardown.md │ │ │ │ │ │ │ ├── setup.md │ │ │ │ │ │ │ └── teardown.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ ├── v3-0-0/ │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ │ ├── clearcachableactions.md │ │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ │ ├── setflashstorage.md │ │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ │ └── verifies.md │ │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ │ ├── assert.md │ │ │ │ │ │ │ ├── fail.md │ │ │ │ │ │ │ ├── getroutes.md │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ │ ├── findlastone.md │ │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ │ └── validationtypeforproperty.md │ │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ │ └── valid.md │ │ │ │ │ │ ├── test-model/ │ │ │ │ │ │ │ ├── debug.md │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ └── raised.md │ │ │ │ │ │ ├── test-model-configuration/ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ ├── packagesetup.md │ │ │ │ │ │ │ ├── packageteardown.md │ │ │ │ │ │ │ ├── setup.md │ │ │ │ │ │ │ └── teardown.md │ │ │ │ │ │ └── view-helpers/ │ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ │ ├── autolink.md │ │ │ │ │ │ ├── buttontag.md │ │ │ │ │ │ ├── buttonto.md │ │ │ │ │ │ ├── checkbox.md │ │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ │ ├── contentfor.md │ │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ │ ├── cycle.md │ │ │ │ │ │ ├── dateselect.md │ │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ │ ├── endformtag.md │ │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ │ ├── filefield.md │ │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ │ ├── highlight.md │ │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ │ ├── imagetag.md │ │ │ │ │ │ ├── includecontent.md │ │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ │ ├── includelayout.md │ │ │ │ │ │ ├── includepartial.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ │ ├── linkto.md │ │ │ │ │ │ ├── mailto.md │ │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ │ ├── select.md │ │ │ │ │ │ ├── selecttag.md │ │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ │ ├── startformtag.md │ │ │ │ │ │ ├── striplinks.md │ │ │ │ │ │ ├── striptags.md │ │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ │ ├── submittag.md │ │ │ │ │ │ ├── textarea.md │ │ │ │ │ │ ├── textareatag.md │ │ │ │ │ │ ├── textfield.md │ │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ │ ├── timeselect.md │ │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ │ └── yearselecttag.md │ │ │ │ │ └── v4-0-0/ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ ├── addformat.md │ │ │ │ │ │ ├── api.md │ │ │ │ │ │ ├── collection.md │ │ │ │ │ │ ├── constraints.md │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ ├── end.md │ │ │ │ │ │ ├── env.md │ │ │ │ │ │ ├── get.md │ │ │ │ │ │ ├── group.md │ │ │ │ │ │ ├── health.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── mapper.md │ │ │ │ │ │ ├── member.md │ │ │ │ │ │ ├── namespace.md │ │ │ │ │ │ ├── package.md │ │ │ │ │ │ ├── patch.md │ │ │ │ │ │ ├── post.md │ │ │ │ │ │ ├── put.md │ │ │ │ │ │ ├── registeronerror.md │ │ │ │ │ │ ├── resource.md │ │ │ │ │ │ ├── resources.md │ │ │ │ │ │ ├── root.md │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ ├── set.md │ │ │ │ │ │ ├── switchtenant.md │ │ │ │ │ │ ├── tenant.md │ │ │ │ │ │ ├── version.md │ │ │ │ │ │ ├── wherealpha.md │ │ │ │ │ │ ├── wherealphanumeric.md │ │ │ │ │ │ ├── wherein.md │ │ │ │ │ │ ├── wherematch.md │ │ │ │ │ │ ├── wherenumber.md │ │ │ │ │ │ ├── whereslug.md │ │ │ │ │ │ ├── whereuuid.md │ │ │ │ │ │ └── wildcard.md │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── authenticitytoken.md │ │ │ │ │ │ ├── caches.md │ │ │ │ │ │ ├── clearcachableactions.md │ │ │ │ │ │ ├── filterchain.md │ │ │ │ │ │ ├── filters.md │ │ │ │ │ │ ├── flash.md │ │ │ │ │ │ ├── flashclear.md │ │ │ │ │ │ ├── flashcount.md │ │ │ │ │ │ ├── flashdelete.md │ │ │ │ │ │ ├── flashinsert.md │ │ │ │ │ │ ├── flashisempty.md │ │ │ │ │ │ ├── flashkeep.md │ │ │ │ │ │ ├── flashkeyexists.md │ │ │ │ │ │ ├── getemails.md │ │ │ │ │ │ ├── getfiles.md │ │ │ │ │ │ ├── getredirect.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── isajax.md │ │ │ │ │ │ ├── isdelete.md │ │ │ │ │ │ ├── isget.md │ │ │ │ │ │ ├── ishead.md │ │ │ │ │ │ ├── isoptions.md │ │ │ │ │ │ ├── ispatch.md │ │ │ │ │ │ ├── ispost.md │ │ │ │ │ │ ├── isput.md │ │ │ │ │ │ ├── issecure.md │ │ │ │ │ │ ├── onlyprovides.md │ │ │ │ │ │ ├── pagination.md │ │ │ │ │ │ ├── processaction.md │ │ │ │ │ │ ├── processrequest.md │ │ │ │ │ │ ├── protectsfromforgery.md │ │ │ │ │ │ ├── provides.md │ │ │ │ │ │ ├── redirectto.md │ │ │ │ │ │ ├── rendernothing.md │ │ │ │ │ │ ├── renderpartial.md │ │ │ │ │ │ ├── rendertext.md │ │ │ │ │ │ ├── renderview.md │ │ │ │ │ │ ├── renderwith.md │ │ │ │ │ │ ├── response.md │ │ │ │ │ │ ├── sendemail.md │ │ │ │ │ │ ├── sendfile.md │ │ │ │ │ │ ├── setfilterchain.md │ │ │ │ │ │ ├── setflashstorage.md │ │ │ │ │ │ ├── setpagination.md │ │ │ │ │ │ ├── setresponse.md │ │ │ │ │ │ ├── setverificationchain.md │ │ │ │ │ │ ├── useslayout.md │ │ │ │ │ │ ├── verificationchain.md │ │ │ │ │ │ └── verifies.md │ │ │ │ │ ├── global-helpers/ │ │ │ │ │ │ ├── capitalize.md │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ ├── deobfuscateparam.md │ │ │ │ │ │ ├── distanceoftimeinwords.md │ │ │ │ │ │ ├── excerpt.md │ │ │ │ │ │ ├── generateuuid.md │ │ │ │ │ │ ├── humanize.md │ │ │ │ │ │ ├── hyphenize.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── injector.md │ │ │ │ │ │ ├── mimetypes.md │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ ├── obfuscateparam.md │ │ │ │ │ │ ├── pluginnames.md │ │ │ │ │ │ ├── pluralize.md │ │ │ │ │ │ ├── publish.md │ │ │ │ │ │ ├── service.md │ │ │ │ │ │ ├── singularize.md │ │ │ │ │ │ ├── timeagoinwords.md │ │ │ │ │ │ ├── timeuntilinwords.md │ │ │ │ │ │ ├── titleize.md │ │ │ │ │ │ ├── truncate.md │ │ │ │ │ │ ├── urlfor.md │ │ │ │ │ │ └── wordtruncate.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── migrator/ │ │ │ │ │ │ ├── addcolumn.md │ │ │ │ │ │ ├── addforeignkey.md │ │ │ │ │ │ ├── addindex.md │ │ │ │ │ │ ├── addrecord.md │ │ │ │ │ │ ├── addreference.md │ │ │ │ │ │ ├── announce.md │ │ │ │ │ │ ├── biginteger.md │ │ │ │ │ │ ├── binary.md │ │ │ │ │ │ ├── boolean.md │ │ │ │ │ │ ├── change.md │ │ │ │ │ │ ├── changecolumn.md │ │ │ │ │ │ ├── changetable.md │ │ │ │ │ │ ├── char.md │ │ │ │ │ │ ├── column.md │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ ├── createmigration.md │ │ │ │ │ │ ├── createtable.md │ │ │ │ │ │ ├── createview.md │ │ │ │ │ │ ├── date.md │ │ │ │ │ │ ├── datetime.md │ │ │ │ │ │ ├── decimal.md │ │ │ │ │ │ ├── down.md │ │ │ │ │ │ ├── dropforeignkey.md │ │ │ │ │ │ ├── dropreference.md │ │ │ │ │ │ ├── droptable.md │ │ │ │ │ │ ├── dropview.md │ │ │ │ │ │ ├── execute.md │ │ │ │ │ │ ├── float.md │ │ │ │ │ │ ├── getavailablemigrations.md │ │ │ │ │ │ ├── getcurrentmigrationversion.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── integer.md │ │ │ │ │ │ ├── migrateindividual.md │ │ │ │ │ │ ├── migrateto.md │ │ │ │ │ │ ├── migratetolatest.md │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ ├── redomigration.md │ │ │ │ │ │ ├── references.md │ │ │ │ │ │ ├── removecolumn.md │ │ │ │ │ │ ├── removeindex.md │ │ │ │ │ │ ├── removerecord.md │ │ │ │ │ │ ├── renamecolumn.md │ │ │ │ │ │ ├── renamesystemtables.md │ │ │ │ │ │ ├── renametable.md │ │ │ │ │ │ ├── string.md │ │ │ │ │ │ ├── text.md │ │ │ │ │ │ ├── time.md │ │ │ │ │ │ ├── timestamp.md │ │ │ │ │ │ ├── timestamps.md │ │ │ │ │ │ ├── uniqueidentifier.md │ │ │ │ │ │ ├── up.md │ │ │ │ │ │ └── updaterecord.md │ │ │ │ │ ├── miscellaneous/ │ │ │ │ │ │ ├── channelssetag.md │ │ │ │ │ │ ├── closessestream.md │ │ │ │ │ │ ├── getroutes.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── initssestream.md │ │ │ │ │ │ ├── inject.md │ │ │ │ │ │ ├── injectedservices.md │ │ │ │ │ │ ├── issserequest.md │ │ │ │ │ │ ├── rendersse.md │ │ │ │ │ │ ├── sendssecomment.md │ │ │ │ │ │ ├── sendsseevent.md │ │ │ │ │ │ └── subscribetochannel.md │ │ │ │ │ ├── model-class/ │ │ │ │ │ │ ├── associationinfo.md │ │ │ │ │ │ ├── associationnames.md │ │ │ │ │ │ ├── average.md │ │ │ │ │ │ ├── callbackinfo.md │ │ │ │ │ │ ├── classinfo.md │ │ │ │ │ │ ├── columndataforproperty.md │ │ │ │ │ │ ├── columnforproperty.md │ │ │ │ │ │ ├── columnnames.md │ │ │ │ │ │ ├── columns.md │ │ │ │ │ │ ├── count.md │ │ │ │ │ │ ├── create.md │ │ │ │ │ │ ├── deleteall.md │ │ │ │ │ │ ├── deletebykey.md │ │ │ │ │ │ ├── deleteone.md │ │ │ │ │ │ ├── enuminfo.md │ │ │ │ │ │ ├── exists.md │ │ │ │ │ │ ├── findall.md │ │ │ │ │ │ ├── findallkeys.md │ │ │ │ │ │ ├── findbykey.md │ │ │ │ │ │ ├── findeach.md │ │ │ │ │ │ ├── findfirst.md │ │ │ │ │ │ ├── findinbatches.md │ │ │ │ │ │ ├── findlastone.md │ │ │ │ │ │ ├── findone.md │ │ │ │ │ │ ├── gettablenameprefix.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── insertall.md │ │ │ │ │ │ ├── invokewithtransaction.md │ │ │ │ │ │ ├── isclass.md │ │ │ │ │ │ ├── isinstance.md │ │ │ │ │ │ ├── maximum.md │ │ │ │ │ │ ├── minimum.md │ │ │ │ │ │ ├── new.md │ │ │ │ │ │ ├── onmissingmethod.md │ │ │ │ │ │ ├── primarykey.md │ │ │ │ │ │ ├── primarykeys.md │ │ │ │ │ │ ├── propertynames.md │ │ │ │ │ │ ├── save.md │ │ │ │ │ │ ├── scopeinfo.md │ │ │ │ │ │ ├── sum.md │ │ │ │ │ │ ├── tablename.md │ │ │ │ │ │ ├── updateall.md │ │ │ │ │ │ ├── updatebykey.md │ │ │ │ │ │ ├── updateone.md │ │ │ │ │ │ ├── upsertall.md │ │ │ │ │ │ ├── validationinfo.md │ │ │ │ │ │ ├── validationtypeforproperty.md │ │ │ │ │ │ └── withadvisorylock.md │ │ │ │ │ ├── model-configuration/ │ │ │ │ │ │ ├── accessibleproperties.md │ │ │ │ │ │ ├── aftercreate.md │ │ │ │ │ │ ├── afterdelete.md │ │ │ │ │ │ ├── afterfind.md │ │ │ │ │ │ ├── afterinitialization.md │ │ │ │ │ │ ├── afternew.md │ │ │ │ │ │ ├── aftersave.md │ │ │ │ │ │ ├── afterupdate.md │ │ │ │ │ │ ├── aftervalidation.md │ │ │ │ │ │ ├── aftervalidationoncreate.md │ │ │ │ │ │ ├── aftervalidationonupdate.md │ │ │ │ │ │ ├── automaticvalidations.md │ │ │ │ │ │ ├── beforecreate.md │ │ │ │ │ │ ├── beforedelete.md │ │ │ │ │ │ ├── beforesave.md │ │ │ │ │ │ ├── beforeupdate.md │ │ │ │ │ │ ├── beforevalidation.md │ │ │ │ │ │ ├── beforevalidationoncreate.md │ │ │ │ │ │ ├── beforevalidationonupdate.md │ │ │ │ │ │ ├── belongsto.md │ │ │ │ │ │ ├── datasource.md │ │ │ │ │ │ ├── enum.md │ │ │ │ │ │ ├── hasmany.md │ │ │ │ │ │ ├── hasone.md │ │ │ │ │ │ ├── ignoredcolumns.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── nestedproperties.md │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ ├── protectedproperties.md │ │ │ │ │ │ ├── scope.md │ │ │ │ │ │ ├── setprimarykey.md │ │ │ │ │ │ ├── setprimarykeys.md │ │ │ │ │ │ ├── settablenameprefix.md │ │ │ │ │ │ ├── sharedmodel.md │ │ │ │ │ │ ├── table.md │ │ │ │ │ │ ├── validate.md │ │ │ │ │ │ ├── validateoncreate.md │ │ │ │ │ │ ├── validateonupdate.md │ │ │ │ │ │ ├── validatesconfirmationof.md │ │ │ │ │ │ ├── validatesexclusionof.md │ │ │ │ │ │ ├── validatesformatof.md │ │ │ │ │ │ ├── validatesinclusionof.md │ │ │ │ │ │ ├── validateslengthof.md │ │ │ │ │ │ ├── validatesnumericalityof.md │ │ │ │ │ │ ├── validatespresenceof.md │ │ │ │ │ │ └── validatesuniquenessof.md │ │ │ │ │ ├── model-object/ │ │ │ │ │ │ ├── adderror.md │ │ │ │ │ │ ├── adderrortobase.md │ │ │ │ │ │ ├── allassociationerrors.md │ │ │ │ │ │ ├── allchanges.md │ │ │ │ │ │ ├── allerrors.md │ │ │ │ │ │ ├── changedfrom.md │ │ │ │ │ │ ├── changedproperties.md │ │ │ │ │ │ ├── clearchangeinformation.md │ │ │ │ │ │ ├── clearerrors.md │ │ │ │ │ │ ├── compareto.md │ │ │ │ │ │ ├── delete.md │ │ │ │ │ │ ├── errorcount.md │ │ │ │ │ │ ├── errorson.md │ │ │ │ │ │ ├── errorsonbase.md │ │ │ │ │ │ ├── haschanged.md │ │ │ │ │ │ ├── haserrors.md │ │ │ │ │ │ ├── hasproperty.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── isnew.md │ │ │ │ │ │ ├── ispersisted.md │ │ │ │ │ │ ├── key.md │ │ │ │ │ │ ├── properties.md │ │ │ │ │ │ ├── propertyisblank.md │ │ │ │ │ │ ├── propertyispresent.md │ │ │ │ │ │ ├── reload.md │ │ │ │ │ │ ├── setproperties.md │ │ │ │ │ │ ├── toggle.md │ │ │ │ │ │ ├── update.md │ │ │ │ │ │ ├── updateproperty.md │ │ │ │ │ │ └── valid.md │ │ │ │ │ └── view-helpers/ │ │ │ │ │ ├── authenticitytokenfield.md │ │ │ │ │ ├── autolink.md │ │ │ │ │ ├── buttontag.md │ │ │ │ │ ├── buttonto.md │ │ │ │ │ ├── checkbox.md │ │ │ │ │ ├── checkboxtag.md │ │ │ │ │ ├── colorfield.md │ │ │ │ │ ├── colorfieldtag.md │ │ │ │ │ ├── contentfor.md │ │ │ │ │ ├── contentforlayout.md │ │ │ │ │ ├── csrfmetatags.md │ │ │ │ │ ├── cycle.md │ │ │ │ │ ├── datefield.md │ │ │ │ │ ├── datefieldtag.md │ │ │ │ │ ├── dateselect.md │ │ │ │ │ ├── dateselecttags.md │ │ │ │ │ ├── datetimeselect.md │ │ │ │ │ ├── datetimeselecttags.md │ │ │ │ │ ├── dayselecttag.md │ │ │ │ │ ├── emailfield.md │ │ │ │ │ ├── emailfieldtag.md │ │ │ │ │ ├── endformtag.md │ │ │ │ │ ├── errormessageon.md │ │ │ │ │ ├── errormessagesfor.md │ │ │ │ │ ├── filefield.md │ │ │ │ │ ├── filefieldtag.md │ │ │ │ │ ├── firstpagelink.md │ │ │ │ │ ├── flashmessages.md │ │ │ │ │ ├── h.md │ │ │ │ │ ├── hasmanycheckbox.md │ │ │ │ │ ├── hasmanyradiobutton.md │ │ │ │ │ ├── hattr.md │ │ │ │ │ ├── hiddenfield.md │ │ │ │ │ ├── hiddenfieldtag.md │ │ │ │ │ ├── highlight.md │ │ │ │ │ ├── hourselecttag.md │ │ │ │ │ ├── imagetag.md │ │ │ │ │ ├── includecontent.md │ │ │ │ │ ├── includedinobject.md │ │ │ │ │ ├── includelayout.md │ │ │ │ │ ├── includepartial.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── javascriptincludetag.md │ │ │ │ │ ├── lastpagelink.md │ │ │ │ │ ├── linkto.md │ │ │ │ │ ├── mailto.md │ │ │ │ │ ├── minuteselecttag.md │ │ │ │ │ ├── monthselecttag.md │ │ │ │ │ ├── nextpagelink.md │ │ │ │ │ ├── numberfield.md │ │ │ │ │ ├── numberfieldtag.md │ │ │ │ │ ├── pagenumberlinks.md │ │ │ │ │ ├── paginationinfo.md │ │ │ │ │ ├── paginationlinks.md │ │ │ │ │ ├── paginationnav.md │ │ │ │ │ ├── passwordfield.md │ │ │ │ │ ├── passwordfieldtag.md │ │ │ │ │ ├── previouspagelink.md │ │ │ │ │ ├── radiobutton.md │ │ │ │ │ ├── radiobuttontag.md │ │ │ │ │ ├── rangefield.md │ │ │ │ │ ├── rangefieldtag.md │ │ │ │ │ ├── resetcycle.md │ │ │ │ │ ├── searchfield.md │ │ │ │ │ ├── searchfieldtag.md │ │ │ │ │ ├── secondselecttag.md │ │ │ │ │ ├── select.md │ │ │ │ │ ├── selecttag.md │ │ │ │ │ ├── simpleformat.md │ │ │ │ │ ├── startformtag.md │ │ │ │ │ ├── striplinks.md │ │ │ │ │ ├── striptags.md │ │ │ │ │ ├── stylesheetlinktag.md │ │ │ │ │ ├── submittag.md │ │ │ │ │ ├── telfield.md │ │ │ │ │ ├── telfieldtag.md │ │ │ │ │ ├── textarea.md │ │ │ │ │ ├── textareatag.md │ │ │ │ │ ├── textfield.md │ │ │ │ │ ├── textfieldtag.md │ │ │ │ │ ├── timeselect.md │ │ │ │ │ ├── timeselecttags.md │ │ │ │ │ ├── urlfield.md │ │ │ │ │ ├── urlfieldtag.md │ │ │ │ │ ├── viteasset.md │ │ │ │ │ ├── vitepreloadtag.md │ │ │ │ │ ├── vitescripttag.md │ │ │ │ │ ├── vitestyletag.md │ │ │ │ │ └── yearselecttag.md │ │ │ │ └── content.config.ts │ │ │ └── tsconfig.json │ │ ├── blog/ │ │ │ ├── astro.config.mjs │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ └── blog-images/ │ │ │ │ └── .gitkeep │ │ │ ├── scripts/ │ │ │ │ └── check-no-body-h1.mjs │ │ │ ├── src/ │ │ │ │ ├── components/ │ │ │ │ │ ├── Giscus.astro │ │ │ │ │ ├── NewsletterSignup.astro │ │ │ │ │ └── PostCard.astro │ │ │ │ ├── content.config.ts │ │ │ │ ├── layouts/ │ │ │ │ │ ├── BaseLayout.astro │ │ │ │ │ └── PostLayout.astro │ │ │ │ ├── pages/ │ │ │ │ │ ├── index.astro │ │ │ │ │ ├── page/ │ │ │ │ │ │ └── [page].astro │ │ │ │ │ ├── posts/ │ │ │ │ │ │ └── [slug].astro │ │ │ │ │ ├── rss.xml.js │ │ │ │ │ └── tags/ │ │ │ │ │ ├── [tag].astro │ │ │ │ │ └── index.astro │ │ │ │ └── utils/ │ │ │ │ └── posts.ts │ │ │ └── tsconfig.json │ │ ├── guides/ │ │ │ ├── STYLE.md │ │ │ ├── astro.config.mjs │ │ │ ├── package.json │ │ │ ├── scripts/ │ │ │ │ └── verify-docs/ │ │ │ │ ├── VALIDATION.md │ │ │ │ ├── drivers/ │ │ │ │ │ ├── cli.mjs │ │ │ │ │ ├── compile.mjs │ │ │ │ │ └── tutorial.mjs │ │ │ │ ├── fixtures/ │ │ │ │ │ └── .gitignore │ │ │ │ ├── lib/ │ │ │ │ │ ├── cli-assert.mjs │ │ │ │ │ ├── exec.mjs │ │ │ │ │ ├── extract.mjs │ │ │ │ │ ├── fixtures.mjs │ │ │ │ │ ├── orchestrator.mjs │ │ │ │ │ ├── report.mjs │ │ │ │ │ └── tutorial-fixture.mjs │ │ │ │ ├── test/ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ ├── cli.test.mjs │ │ │ │ │ ├── compile.test.mjs │ │ │ │ │ ├── extract.test.mjs │ │ │ │ │ ├── fixtures/ │ │ │ │ │ │ ├── mini-tutorial/ │ │ │ │ │ │ │ ├── step-1.mdx │ │ │ │ │ │ │ └── step-2.mdx │ │ │ │ │ │ └── sample.mdx │ │ │ │ │ ├── orchestrator.test.mjs │ │ │ │ │ └── tutorial.test.mjs │ │ │ │ └── verify-docs.mjs │ │ │ ├── src/ │ │ │ │ ├── content/ │ │ │ │ │ └── docs/ │ │ │ │ │ ├── index.md │ │ │ │ │ ├── v2-5-0/ │ │ │ │ │ │ ├── command-line-tools/ │ │ │ │ │ │ │ ├── cli-commands.md │ │ │ │ │ │ │ ├── wheels-commands.md │ │ │ │ │ │ │ ├── wheels-dbmigrate-commands.md │ │ │ │ │ │ │ ├── wheels-generate-commands.md │ │ │ │ │ │ │ └── wheels-plugins-commands.md │ │ │ │ │ │ ├── database-interaction-through-models/ │ │ │ │ │ │ │ ├── associations.md │ │ │ │ │ │ │ ├── automatic-time-stamps.md │ │ │ │ │ │ │ ├── calculated-properties.md │ │ │ │ │ │ │ ├── column-statistics.md │ │ │ │ │ │ │ ├── creating-records.md │ │ │ │ │ │ │ ├── database-migrations/ │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ └── migrations-in-production.md │ │ │ │ │ │ │ ├── deleting-records.md │ │ │ │ │ │ │ ├── dirty-records.md │ │ │ │ │ │ │ ├── dynamic-finders.md │ │ │ │ │ │ │ ├── getting-paginated-data.md │ │ │ │ │ │ │ ├── nested-properties.md │ │ │ │ │ │ │ ├── object-callbacks.md │ │ │ │ │ │ │ ├── object-relational-mapping.md │ │ │ │ │ │ │ ├── object-validation.md │ │ │ │ │ │ │ ├── reading-records.md │ │ │ │ │ │ │ ├── soft-delete.md │ │ │ │ │ │ │ ├── transactions.md │ │ │ │ │ │ │ ├── updating-records.md │ │ │ │ │ │ │ └── using-multiple-data-sources.md │ │ │ │ │ │ ├── displaying-views-to-users/ │ │ │ │ │ │ │ ├── creating-custom-view-helpers.md │ │ │ │ │ │ │ ├── date-media-and-text-helpers.md │ │ │ │ │ │ │ ├── displaying-links-for-pagination.md │ │ │ │ │ │ │ ├── form-helpers-and-showing-errors.md │ │ │ │ │ │ │ ├── layouts.md │ │ │ │ │ │ │ ├── linking-pages.md │ │ │ │ │ │ │ ├── localization.md │ │ │ │ │ │ │ ├── pages.md │ │ │ │ │ │ │ └── partials.md │ │ │ │ │ │ ├── handling-requests-with-controllers/ │ │ │ │ │ │ │ ├── caching.md │ │ │ │ │ │ │ ├── cors-requests.md │ │ │ │ │ │ │ ├── event-handlers.md │ │ │ │ │ │ │ ├── nesting-controllers.md │ │ │ │ │ │ │ ├── obfuscating-urls.md │ │ │ │ │ │ │ ├── redirecting-users.md │ │ │ │ │ │ │ ├── rendering-content.md │ │ │ │ │ │ │ ├── request-handling.md │ │ │ │ │ │ │ ├── responding-with-multiple-formats.md │ │ │ │ │ │ │ ├── routing.md │ │ │ │ │ │ │ ├── sending-email.md │ │ │ │ │ │ │ ├── sending-files.md │ │ │ │ │ │ │ ├── url-rewriting/ │ │ │ │ │ │ │ │ ├── apache.md │ │ │ │ │ │ │ │ ├── iis.md │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ ├── nginx.md │ │ │ │ │ │ │ │ └── tomcat.md │ │ │ │ │ │ │ ├── using-filters.md │ │ │ │ │ │ │ ├── using-the-flash.md │ │ │ │ │ │ │ └── verification.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── introduction/ │ │ │ │ │ │ │ ├── frameworks-and-cfwheels.md │ │ │ │ │ │ │ ├── getting-started/ │ │ │ │ │ │ │ │ ├── beginner-tutorial-hello-database.md │ │ │ │ │ │ │ │ ├── beginner-tutorial-hello-world.md │ │ │ │ │ │ │ │ ├── running-local-development-servers.md │ │ │ │ │ │ │ │ └── tutorial-cfwheels-ajax-and-you.md │ │ │ │ │ │ │ ├── manual-installation.md │ │ │ │ │ │ │ ├── requirements.md │ │ │ │ │ │ │ ├── screencasts.md │ │ │ │ │ │ │ └── upgrading.md │ │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ │ ├── developing-plugins.md │ │ │ │ │ │ │ ├── installing-and-using-plugins.md │ │ │ │ │ │ │ └── publishing-plugins.md │ │ │ │ │ │ └── working-with-cfwheels/ │ │ │ │ │ │ ├── configuration-and-defaults.md │ │ │ │ │ │ ├── contributing-to-cfwheels.md │ │ │ │ │ │ ├── conventions.md │ │ │ │ │ │ ├── directory-structure.md │ │ │ │ │ │ ├── documenting-your-code.md │ │ │ │ │ │ ├── switching-environments.md │ │ │ │ │ │ └── testing-your-application.md │ │ │ │ │ ├── v3-0-0/ │ │ │ │ │ │ ├── command-line-tools/ │ │ │ │ │ │ │ ├── cli-guides/ │ │ │ │ │ │ │ │ ├── creating-commands.md │ │ │ │ │ │ │ │ ├── migrations.md │ │ │ │ │ │ │ │ ├── service-architecture.md │ │ │ │ │ │ │ │ ├── template-system.md │ │ │ │ │ │ │ │ └── testing.md │ │ │ │ │ │ │ ├── cli-overview.md │ │ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ │ │ ├── analysis/ │ │ │ │ │ │ │ │ │ ├── analyze-code.md │ │ │ │ │ │ │ │ │ ├── analyze-performance.md │ │ │ │ │ │ │ │ │ └── analyze.md │ │ │ │ │ │ │ │ ├── application-utilities/ │ │ │ │ │ │ │ │ │ ├── about.md │ │ │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ │ │ ├── assets-cache-management.md │ │ │ │ │ │ │ │ ├── benchmark/ │ │ │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ │ ├── config-check.md │ │ │ │ │ │ │ │ │ ├── config-diff.md │ │ │ │ │ │ │ │ │ └── config-dump.md │ │ │ │ │ │ │ │ ├── core/ │ │ │ │ │ │ │ │ │ ├── deps.md │ │ │ │ │ │ │ │ │ ├── destroy.md │ │ │ │ │ │ │ │ │ ├── info.md │ │ │ │ │ │ │ │ │ ├── init.md │ │ │ │ │ │ │ │ │ └── reload.md │ │ │ │ │ │ │ │ ├── database/ │ │ │ │ │ │ │ │ │ ├── db-create.md │ │ │ │ │ │ │ │ │ ├── db-drop.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-create-blank.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-create-column.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-create-table.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-down.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-exec.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-info.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-latest.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-remove-table.md │ │ │ │ │ │ │ │ │ ├── dbmigrate-reset.md │ │ │ │ │ │ │ │ │ └── dbmigrate-up.md │ │ │ │ │ │ │ │ ├── deployment/ │ │ │ │ │ │ │ │ │ └── index.md │ │ │ │ │ │ │ │ ├── docker/ │ │ │ │ │ │ │ │ │ ├── docker-build.md │ │ │ │ │ │ │ │ │ ├── docker-deploy.md │ │ │ │ │ │ │ │ │ ├── docker-exec.md │ │ │ │ │ │ │ │ │ ├── docker-init.md │ │ │ │ │ │ │ │ │ ├── docker-login.md │ │ │ │ │ │ │ │ │ ├── docker-logs.md │ │ │ │ │ │ │ │ │ ├── docker-push.md │ │ │ │ │ │ │ │ │ └── docker-stop.md │ │ │ │ │ │ │ │ ├── docs/ │ │ │ │ │ │ │ │ │ ├── docs-generate.md │ │ │ │ │ │ │ │ │ └── docs-serve.md │ │ │ │ │ │ │ │ ├── environment/ │ │ │ │ │ │ │ │ │ ├── env-list.md │ │ │ │ │ │ │ │ │ ├── env-merge.md │ │ │ │ │ │ │ │ │ ├── env-set.md │ │ │ │ │ │ │ │ │ ├── env-setup.md │ │ │ │ │ │ │ │ │ ├── env-show.md │ │ │ │ │ │ │ │ │ ├── env-switch.md │ │ │ │ │ │ │ │ │ └── env-validate.md │ │ │ │ │ │ │ │ ├── generate/ │ │ │ │ │ │ │ │ │ ├── api-resource.md │ │ │ │ │ │ │ │ │ ├── app-wizard.md │ │ │ │ │ │ │ │ │ ├── app.md │ │ │ │ │ │ │ │ │ ├── code.md │ │ │ │ │ │ │ │ │ ├── controller.md │ │ │ │ │ │ │ │ │ ├── helper.md │ │ │ │ │ │ │ │ │ ├── migration.md │ │ │ │ │ │ │ │ │ ├── model.md │ │ │ │ │ │ │ │ │ ├── property.md │ │ │ │ │ │ │ │ │ ├── route.md │ │ │ │ │ │ │ │ │ ├── scaffold.md │ │ │ │ │ │ │ │ │ ├── snippets.md │ │ │ │ │ │ │ │ │ ├── test.md │ │ │ │ │ │ │ │ │ └── view.md │ │ │ │ │ │ │ │ ├── get/ │ │ │ │ │ │ │ │ │ ├── get-environment.md │ │ │ │ │ │ │ │ │ └── get-settings.md │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ ├── mcp/ │ │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ │ ├── mcp-remove.md │ │ │ │ │ │ │ │ │ ├── mcp-setup.md │ │ │ │ │ │ │ │ │ ├── mcp-status.md │ │ │ │ │ │ │ │ │ ├── mcp-test.md │ │ │ │ │ │ │ │ │ └── mcp-update.md │ │ │ │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ │ │ │ ├── plugins-info.md │ │ │ │ │ │ │ │ │ ├── plugins-init.md │ │ │ │ │ │ │ │ │ ├── plugins-install.md │ │ │ │ │ │ │ │ │ ├── plugins-list.md │ │ │ │ │ │ │ │ │ ├── plugins-outdated.md │ │ │ │ │ │ │ │ │ ├── plugins-remove.md │ │ │ │ │ │ │ │ │ ├── plugins-search.md │ │ │ │ │ │ │ │ │ ├── plugins-update-all.md │ │ │ │ │ │ │ │ │ └── plugins-update.md │ │ │ │ │ │ │ │ ├── security/ │ │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ │ └── security-scan.md │ │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ │ ├── test-advanced.md │ │ │ │ │ │ │ │ └── test-run.md │ │ │ │ │ │ │ ├── configuration.md │ │ │ │ │ │ │ ├── development-workflow.md │ │ │ │ │ │ │ └── quick-start.md │ │ │ │ │ │ ├── database-interaction-through-models/ │ │ │ │ │ │ │ ├── associations.md │ │ │ │ │ │ │ ├── automatic-time-stamps.md │ │ │ │ │ │ │ ├── calculated-properties.md │ │ │ │ │ │ │ ├── column-statistics.md │ │ │ │ │ │ │ ├── creating-records.md │ │ │ │ │ │ │ ├── database-migrations/ │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ └── migrations-in-production.md │ │ │ │ │ │ │ ├── deleting-records.md │ │ │ │ │ │ │ ├── dirty-records.md │ │ │ │ │ │ │ ├── dynamic-finders.md │ │ │ │ │ │ │ ├── getting-paginated-data.md │ │ │ │ │ │ │ ├── nested-properties.md │ │ │ │ │ │ │ ├── object-callbacks.md │ │ │ │ │ │ │ ├── object-relational-mapping.md │ │ │ │ │ │ │ ├── object-validation.md │ │ │ │ │ │ │ ├── reading-records.md │ │ │ │ │ │ │ ├── soft-delete.md │ │ │ │ │ │ │ ├── transactions.md │ │ │ │ │ │ │ ├── updating-records.md │ │ │ │ │ │ │ ├── using-multiple-data-sources.md │ │ │ │ │ │ │ └── using-sqlite.md │ │ │ │ │ │ ├── displaying-views-to-users/ │ │ │ │ │ │ │ ├── creating-custom-view-helpers.md │ │ │ │ │ │ │ ├── date-media-and-text-helpers.md │ │ │ │ │ │ │ ├── displaying-links-for-pagination.md │ │ │ │ │ │ │ ├── form-helpers-and-showing-errors.md │ │ │ │ │ │ │ ├── layouts.md │ │ │ │ │ │ │ ├── linking-pages.md │ │ │ │ │ │ │ ├── localization.md │ │ │ │ │ │ │ ├── pages.md │ │ │ │ │ │ │ └── partials.md │ │ │ │ │ │ ├── handling-requests-with-controllers/ │ │ │ │ │ │ │ ├── caching.md │ │ │ │ │ │ │ ├── cors-requests.md │ │ │ │ │ │ │ ├── event-handlers.md │ │ │ │ │ │ │ ├── http-method-detection.md │ │ │ │ │ │ │ ├── nesting-controllers.md │ │ │ │ │ │ │ ├── obfuscating-urls.md │ │ │ │ │ │ │ ├── redirecting-users.md │ │ │ │ │ │ │ ├── rendering-content.md │ │ │ │ │ │ │ ├── request-handling.md │ │ │ │ │ │ │ ├── responding-with-multiple-formats.md │ │ │ │ │ │ │ ├── routing.md │ │ │ │ │ │ │ ├── sending-email.md │ │ │ │ │ │ │ ├── sending-files.md │ │ │ │ │ │ │ ├── url-rewriting/ │ │ │ │ │ │ │ │ ├── apache.md │ │ │ │ │ │ │ │ ├── iis.md │ │ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ │ │ ├── nginx.md │ │ │ │ │ │ │ │ └── tomcat.md │ │ │ │ │ │ │ ├── using-filters.md │ │ │ │ │ │ │ ├── using-the-flash.md │ │ │ │ │ │ │ └── verification.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── introduction/ │ │ │ │ │ │ │ ├── frameworks-and-wheels.md │ │ │ │ │ │ │ ├── manual-installation.md │ │ │ │ │ │ │ ├── readme/ │ │ │ │ │ │ │ │ ├── beginner-tutorial-hello-database.md │ │ │ │ │ │ │ │ ├── beginner-tutorial-hello-world.md │ │ │ │ │ │ │ │ ├── boxlang-support.md │ │ │ │ │ │ │ │ ├── running-local-development-servers.md │ │ │ │ │ │ │ │ └── tutorial-wheels-ajax-and-you.md │ │ │ │ │ │ │ ├── requirements.md │ │ │ │ │ │ │ ├── screencasts.md │ │ │ │ │ │ │ └── upgrading.md │ │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ │ ├── developing-plugins.md │ │ │ │ │ │ │ ├── installing-and-using-plugins.md │ │ │ │ │ │ │ └── publishing-plugins.md │ │ │ │ │ │ ├── project-documentation/ │ │ │ │ │ │ │ └── overview.md │ │ │ │ │ │ ├── upgrading/ │ │ │ │ │ │ │ └── 3-0-0-config-migration.md │ │ │ │ │ │ └── working-with-wheels/ │ │ │ │ │ │ ├── configuration-and-defaults.md │ │ │ │ │ │ ├── contributing-to-wheels-macos-installer.md │ │ │ │ │ │ ├── contributing-to-wheels-vscode-extension.md │ │ │ │ │ │ ├── contributing-to-wheels-windows-installer.md │ │ │ │ │ │ ├── contributing-to-wheels.md │ │ │ │ │ │ ├── conventions.md │ │ │ │ │ │ ├── directory-structure.md │ │ │ │ │ │ ├── documenting-your-code.md │ │ │ │ │ │ ├── overriding-core-methods.md │ │ │ │ │ │ ├── submitting-pull-requests.md │ │ │ │ │ │ ├── switching-environments.md │ │ │ │ │ │ ├── testing-your-application.md │ │ │ │ │ │ └── using-the-test-environment.md │ │ │ │ │ ├── v4-0-0/ │ │ │ │ │ │ ├── basics/ │ │ │ │ │ │ │ ├── associations.mdx │ │ │ │ │ │ │ ├── controllers-and-actions.mdx │ │ │ │ │ │ │ ├── database-and-multiple-datasources.mdx │ │ │ │ │ │ │ ├── forms-and-form-helpers.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── migrations.mdx │ │ │ │ │ │ │ ├── models-and-the-orm.mdx │ │ │ │ │ │ │ ├── query-builder-and-scopes.mdx │ │ │ │ │ │ │ ├── routing.mdx │ │ │ │ │ │ │ ├── seeding.mdx │ │ │ │ │ │ │ ├── validation-and-errors.mdx │ │ │ │ │ │ │ └── views-layouts-partials.mdx │ │ │ │ │ │ ├── command-line-tools/ │ │ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ │ │ ├── deploy/ │ │ │ │ │ │ │ │ │ ├── accessory/ │ │ │ │ │ │ │ │ │ │ ├── boot.mdx │ │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ ├── logs.mdx │ │ │ │ │ │ │ │ │ │ ├── reboot.mdx │ │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ │ ├── restart.mdx │ │ │ │ │ │ │ │ │ │ ├── start.mdx │ │ │ │ │ │ │ │ │ │ └── stop.mdx │ │ │ │ │ │ │ │ │ ├── app/ │ │ │ │ │ │ │ │ │ │ ├── boot.mdx │ │ │ │ │ │ │ │ │ │ ├── containers.mdx │ │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ │ ├── images.mdx │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ ├── live.mdx │ │ │ │ │ │ │ │ │ │ ├── logs.mdx │ │ │ │ │ │ │ │ │ │ ├── maintenance.mdx │ │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ │ ├── start.mdx │ │ │ │ │ │ │ │ │ │ └── stop.mdx │ │ │ │ │ │ │ │ │ ├── audit.mdx │ │ │ │ │ │ │ │ │ ├── build/ │ │ │ │ │ │ │ │ │ │ ├── create.mdx │ │ │ │ │ │ │ │ │ │ ├── deliver.mdx │ │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ │ ├── dev.mdx │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ ├── pull.mdx │ │ │ │ │ │ │ │ │ │ ├── push.mdx │ │ │ │ │ │ │ │ │ │ └── remove.mdx │ │ │ │ │ │ │ │ │ ├── config.mdx │ │ │ │ │ │ │ │ │ ├── deploy.mdx │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ ├── docs.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── init.mdx │ │ │ │ │ │ │ │ │ ├── lock/ │ │ │ │ │ │ │ │ │ │ ├── acquire.mdx │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ ├── release.mdx │ │ │ │ │ │ │ │ │ │ └── status.mdx │ │ │ │ │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ │ │ │ │ ├── boot.mdx │ │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ ├── logs.mdx │ │ │ │ │ │ │ │ │ │ ├── reboot.mdx │ │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ │ ├── restart.mdx │ │ │ │ │ │ │ │ │ │ ├── start.mdx │ │ │ │ │ │ │ │ │ │ └── stop.mdx │ │ │ │ │ │ │ │ │ ├── prune/ │ │ │ │ │ │ │ │ │ │ ├── all.mdx │ │ │ │ │ │ │ │ │ │ ├── containers.mdx │ │ │ │ │ │ │ │ │ │ ├── images.mdx │ │ │ │ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ │ │ │ │ ├── redeploy.mdx │ │ │ │ │ │ │ │ │ ├── registry/ │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ ├── login.mdx │ │ │ │ │ │ │ │ │ │ ├── logout.mdx │ │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ │ └── setup.mdx │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ ├── rollback.mdx │ │ │ │ │ │ │ │ │ ├── secrets/ │ │ │ │ │ │ │ │ │ │ ├── extract.mdx │ │ │ │ │ │ │ │ │ │ ├── fetch.mdx │ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ │ └── print.mdx │ │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ │ ├── bootstrap.mdx │ │ │ │ │ │ │ │ │ │ ├── exec.mdx │ │ │ │ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ │ │ │ │ ├── setup.mdx │ │ │ │ │ │ │ │ │ └── version.mdx │ │ │ │ │ │ │ │ └── packages/ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ ├── install.mdx │ │ │ │ │ │ │ │ ├── list.mdx │ │ │ │ │ │ │ │ ├── registry/ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── info.mdx │ │ │ │ │ │ │ │ │ └── refresh.mdx │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ │ │ ├── show.mdx │ │ │ │ │ │ │ │ └── update.mdx │ │ │ │ │ │ │ ├── configuration.mdx │ │ │ │ │ │ │ ├── core-commands/ │ │ │ │ │ │ │ │ ├── ai-and-completion.mdx │ │ │ │ │ │ │ │ ├── cfml-execution.mdx │ │ │ │ │ │ │ │ ├── modules-and-deps.mdx │ │ │ │ │ │ │ │ ├── server.mdx │ │ │ │ │ │ │ │ └── system-and-secrets.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── installation.mdx │ │ │ │ │ │ │ ├── mcp-integration.mdx │ │ │ │ │ │ │ ├── quick-start.mdx │ │ │ │ │ │ │ └── wheels-commands/ │ │ │ │ │ │ │ ├── app-inspection.mdx │ │ │ │ │ │ │ ├── code-generation.mdx │ │ │ │ │ │ │ ├── code-quality.mdx │ │ │ │ │ │ │ ├── console-and-repl.mdx │ │ │ │ │ │ │ ├── creating-a-project.mdx │ │ │ │ │ │ │ ├── database.mdx │ │ │ │ │ │ │ ├── dev-server.mdx │ │ │ │ │ │ │ ├── scaffold-cleanup.mdx │ │ │ │ │ │ │ ├── testing.mdx │ │ │ │ │ │ │ └── upgrade.mdx │ │ │ │ │ │ ├── contributing/ │ │ │ │ │ │ │ ├── coding-standards.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── pull-requests.mdx │ │ │ │ │ │ │ └── writing-docs.mdx │ │ │ │ │ │ ├── core-concepts/ │ │ │ │ │ │ │ ├── conventions-over-configuration.mdx │ │ │ │ │ │ │ ├── dependency-injection.mdx │ │ │ │ │ │ │ ├── environments-and-configuration.mdx │ │ │ │ │ │ │ ├── how-routing-works.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── middleware-pipeline.mdx │ │ │ │ │ │ │ ├── mvc-in-wheels.mdx │ │ │ │ │ │ │ ├── orm-philosophy.mdx │ │ │ │ │ │ │ └── request-lifecycle.mdx │ │ │ │ │ │ ├── deployment/ │ │ │ │ │ │ │ ├── accessories.mdx │ │ │ │ │ │ │ ├── architecture.mdx │ │ │ │ │ │ │ ├── config-reference.mdx │ │ │ │ │ │ │ ├── docker-deployment.mdx │ │ │ │ │ │ │ ├── first-deploy.mdx │ │ │ │ │ │ │ ├── hooks.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── migrating-from-kamal.mdx │ │ │ │ │ │ │ ├── observability-and-logging.mdx │ │ │ │ │ │ │ ├── production-config.mdx │ │ │ │ │ │ │ ├── secrets.mdx │ │ │ │ │ │ │ ├── security-hardening.mdx │ │ │ │ │ │ │ └── vm-deployment.mdx │ │ │ │ │ │ ├── digging-deeper/ │ │ │ │ │ │ │ ├── authentication-patterns.mdx │ │ │ │ │ │ │ ├── authorization-and-filters.mdx │ │ │ │ │ │ │ ├── background-jobs.mdx │ │ │ │ │ │ │ ├── caching.mdx │ │ │ │ │ │ │ ├── cors.mdx │ │ │ │ │ │ │ ├── debug-panel.mdx │ │ │ │ │ │ │ ├── dependency-injection-usage.mdx │ │ │ │ │ │ │ ├── file-uploads-and-downloads.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── internationalization.mdx │ │ │ │ │ │ │ ├── multi-tenancy.mdx │ │ │ │ │ │ │ ├── packages.mdx │ │ │ │ │ │ │ ├── rate-limiting.mdx │ │ │ │ │ │ │ ├── route-model-binding.mdx │ │ │ │ │ │ │ ├── sending-email.mdx │ │ │ │ │ │ │ └── server-sent-events.mdx │ │ │ │ │ │ ├── glossary.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── start-here/ │ │ │ │ │ │ │ ├── cfml-engines.mdx │ │ │ │ │ │ │ ├── first-15-minutes.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── installing.mdx │ │ │ │ │ │ │ ├── release-channels.mdx │ │ │ │ │ │ │ ├── tutorial/ │ │ │ │ │ │ │ │ ├── 01-hello-wheels.mdx │ │ │ │ │ │ │ │ ├── 02-first-model.mdx │ │ │ │ │ │ │ │ ├── 03-crud-scaffold.mdx │ │ │ │ │ │ │ │ ├── 04-validations-frames.mdx │ │ │ │ │ │ │ │ ├── 05-comments-streams.mdx │ │ │ │ │ │ │ │ ├── 06-authentication.mdx │ │ │ │ │ │ │ │ ├── 07-testing-deploying.mdx │ │ │ │ │ │ │ │ ├── 08-bonus-basecoat.mdx │ │ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ │ │ ├── welcome.mdx │ │ │ │ │ │ │ └── why-wheels.mdx │ │ │ │ │ │ ├── testing/ │ │ │ │ │ │ │ ├── browser-tests.mdx │ │ │ │ │ │ │ ├── ci-integration.mdx │ │ │ │ │ │ │ ├── controller-tests.mdx │ │ │ │ │ │ │ ├── fixtures-and-test-data.mdx │ │ │ │ │ │ │ ├── functional-tests.mdx │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── integration-tests.mdx │ │ │ │ │ │ │ ├── model-tests.mdx │ │ │ │ │ │ │ ├── running-tests-locally.mdx │ │ │ │ │ │ │ └── view-and-form-tests.mdx │ │ │ │ │ │ └── upgrading/ │ │ │ │ │ │ ├── 2x-to-3x.mdx │ │ │ │ │ │ ├── 3x-to-4x.mdx │ │ │ │ │ │ └── index.mdx │ │ │ │ │ └── v4-0-1-snapshot/ │ │ │ │ │ ├── basics/ │ │ │ │ │ │ ├── associations.mdx │ │ │ │ │ │ ├── controllers-and-actions.mdx │ │ │ │ │ │ ├── database-and-multiple-datasources.mdx │ │ │ │ │ │ ├── forms-and-form-helpers.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── migrations.mdx │ │ │ │ │ │ ├── models-and-the-orm.mdx │ │ │ │ │ │ ├── query-builder-and-scopes.mdx │ │ │ │ │ │ ├── routing.mdx │ │ │ │ │ │ ├── seeding.mdx │ │ │ │ │ │ ├── validation-and-errors.mdx │ │ │ │ │ │ └── views-layouts-partials.mdx │ │ │ │ │ ├── command-line-tools/ │ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ │ ├── deploy/ │ │ │ │ │ │ │ │ ├── accessory/ │ │ │ │ │ │ │ │ │ ├── boot.mdx │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── logs.mdx │ │ │ │ │ │ │ │ │ ├── reboot.mdx │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ ├── restart.mdx │ │ │ │ │ │ │ │ │ ├── start.mdx │ │ │ │ │ │ │ │ │ └── stop.mdx │ │ │ │ │ │ │ │ ├── app/ │ │ │ │ │ │ │ │ │ ├── boot.mdx │ │ │ │ │ │ │ │ │ ├── containers.mdx │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ ├── images.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── live.mdx │ │ │ │ │ │ │ │ │ ├── logs.mdx │ │ │ │ │ │ │ │ │ ├── maintenance.mdx │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ ├── start.mdx │ │ │ │ │ │ │ │ │ └── stop.mdx │ │ │ │ │ │ │ │ ├── audit.mdx │ │ │ │ │ │ │ │ ├── bootstrap.mdx │ │ │ │ │ │ │ │ ├── build/ │ │ │ │ │ │ │ │ │ ├── create.mdx │ │ │ │ │ │ │ │ │ ├── deliver.mdx │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ ├── dev.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── pull.mdx │ │ │ │ │ │ │ │ │ ├── push.mdx │ │ │ │ │ │ │ │ │ └── remove.mdx │ │ │ │ │ │ │ │ ├── config.mdx │ │ │ │ │ │ │ │ ├── deploy.mdx │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ ├── docs.mdx │ │ │ │ │ │ │ │ ├── exec.mdx │ │ │ │ │ │ │ │ ├── extract-secrets.mdx │ │ │ │ │ │ │ │ ├── fetch-secrets.mdx │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ ├── init.mdx │ │ │ │ │ │ │ │ ├── lock/ │ │ │ │ │ │ │ │ │ ├── acquire.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── release.mdx │ │ │ │ │ │ │ │ │ └── status.mdx │ │ │ │ │ │ │ │ ├── print-secrets.mdx │ │ │ │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ │ │ │ ├── boot.mdx │ │ │ │ │ │ │ │ │ ├── details.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── logs.mdx │ │ │ │ │ │ │ │ │ ├── reboot.mdx │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ ├── restart.mdx │ │ │ │ │ │ │ │ │ ├── start.mdx │ │ │ │ │ │ │ │ │ └── stop.mdx │ │ │ │ │ │ │ │ ├── prune/ │ │ │ │ │ │ │ │ │ ├── all.mdx │ │ │ │ │ │ │ │ │ ├── containers.mdx │ │ │ │ │ │ │ │ │ ├── images.mdx │ │ │ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ │ │ │ ├── redeploy.mdx │ │ │ │ │ │ │ │ ├── registry/ │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ ├── login.mdx │ │ │ │ │ │ │ │ │ ├── logout.mdx │ │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ │ └── setup.mdx │ │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ │ ├── rollback.mdx │ │ │ │ │ │ │ │ ├── secrets/ │ │ │ │ │ │ │ │ │ ├── extract.mdx │ │ │ │ │ │ │ │ │ ├── fetch.mdx │ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ │ └── print.mdx │ │ │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ │ │ ├── bootstrap.mdx │ │ │ │ │ │ │ │ │ ├── exec.mdx │ │ │ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ │ │ │ ├── setup.mdx │ │ │ │ │ │ │ │ └── version.mdx │ │ │ │ │ │ │ └── packages/ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ ├── install.mdx │ │ │ │ │ │ │ ├── list.mdx │ │ │ │ │ │ │ ├── registry/ │ │ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ │ │ ├── info.mdx │ │ │ │ │ │ │ │ └── refresh.mdx │ │ │ │ │ │ │ ├── remove.mdx │ │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ │ ├── show.mdx │ │ │ │ │ │ │ └── update.mdx │ │ │ │ │ │ ├── configuration.mdx │ │ │ │ │ │ ├── core-commands/ │ │ │ │ │ │ │ ├── ai-and-completion.mdx │ │ │ │ │ │ │ ├── cfml-execution.mdx │ │ │ │ │ │ │ ├── modules-and-deps.mdx │ │ │ │ │ │ │ ├── server.mdx │ │ │ │ │ │ │ └── system-and-secrets.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── installation.mdx │ │ │ │ │ │ ├── mcp-integration.mdx │ │ │ │ │ │ ├── quick-start.mdx │ │ │ │ │ │ └── wheels-commands/ │ │ │ │ │ │ ├── app-inspection.mdx │ │ │ │ │ │ ├── code-generation.mdx │ │ │ │ │ │ ├── code-quality.mdx │ │ │ │ │ │ ├── console-and-repl.mdx │ │ │ │ │ │ ├── creating-a-project.mdx │ │ │ │ │ │ ├── database.mdx │ │ │ │ │ │ ├── dev-server.mdx │ │ │ │ │ │ ├── scaffold-cleanup.mdx │ │ │ │ │ │ ├── testing.mdx │ │ │ │ │ │ └── upgrade.mdx │ │ │ │ │ ├── contributing/ │ │ │ │ │ │ ├── coding-standards.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── pull-requests.mdx │ │ │ │ │ │ └── writing-docs.mdx │ │ │ │ │ ├── core-concepts/ │ │ │ │ │ │ ├── conventions-over-configuration.mdx │ │ │ │ │ │ ├── dependency-injection.mdx │ │ │ │ │ │ ├── environments-and-configuration.mdx │ │ │ │ │ │ ├── how-routing-works.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── middleware-pipeline.mdx │ │ │ │ │ │ ├── mvc-in-wheels.mdx │ │ │ │ │ │ ├── orm-philosophy.mdx │ │ │ │ │ │ └── request-lifecycle.mdx │ │ │ │ │ ├── deployment/ │ │ │ │ │ │ ├── accessories.mdx │ │ │ │ │ │ ├── architecture.mdx │ │ │ │ │ │ ├── config-reference.mdx │ │ │ │ │ │ ├── docker-deployment.mdx │ │ │ │ │ │ ├── first-deploy.mdx │ │ │ │ │ │ ├── hooks.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── migrating-from-kamal.mdx │ │ │ │ │ │ ├── observability-and-logging.mdx │ │ │ │ │ │ ├── production-config.mdx │ │ │ │ │ │ ├── secrets.mdx │ │ │ │ │ │ ├── security-hardening.mdx │ │ │ │ │ │ └── vm-deployment.mdx │ │ │ │ │ ├── digging-deeper/ │ │ │ │ │ │ ├── authentication-patterns.mdx │ │ │ │ │ │ ├── authorization-and-filters.mdx │ │ │ │ │ │ ├── background-jobs.mdx │ │ │ │ │ │ ├── caching.mdx │ │ │ │ │ │ ├── cors.mdx │ │ │ │ │ │ ├── debug-panel.mdx │ │ │ │ │ │ ├── dependency-injection-usage.mdx │ │ │ │ │ │ ├── file-uploads-and-downloads.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── internationalization.mdx │ │ │ │ │ │ ├── multi-tenancy.mdx │ │ │ │ │ │ ├── packages.mdx │ │ │ │ │ │ ├── rate-limiting.mdx │ │ │ │ │ │ ├── route-model-binding.mdx │ │ │ │ │ │ ├── sending-email.mdx │ │ │ │ │ │ └── server-sent-events.mdx │ │ │ │ │ ├── glossary.mdx │ │ │ │ │ ├── index.mdx │ │ │ │ │ ├── start-here/ │ │ │ │ │ │ ├── cfml-engines.mdx │ │ │ │ │ │ ├── first-15-minutes.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── installing.mdx │ │ │ │ │ │ ├── release-channels.mdx │ │ │ │ │ │ ├── tutorial/ │ │ │ │ │ │ │ ├── 01-hello-wheels.mdx │ │ │ │ │ │ │ ├── 02-first-model.mdx │ │ │ │ │ │ │ ├── 03-crud-scaffold.mdx │ │ │ │ │ │ │ ├── 04-validations-frames.mdx │ │ │ │ │ │ │ ├── 05-comments-streams.mdx │ │ │ │ │ │ │ ├── 06-authentication.mdx │ │ │ │ │ │ │ ├── 07-testing-deploying.mdx │ │ │ │ │ │ │ ├── 08-bonus-basecoat.mdx │ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ │ ├── welcome.mdx │ │ │ │ │ │ └── why-wheels.mdx │ │ │ │ │ ├── testing/ │ │ │ │ │ │ ├── browser-tests.mdx │ │ │ │ │ │ ├── ci-integration.mdx │ │ │ │ │ │ ├── controller-tests.mdx │ │ │ │ │ │ ├── fixtures-and-test-data.mdx │ │ │ │ │ │ ├── functional-tests.mdx │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ ├── integration-tests.mdx │ │ │ │ │ │ ├── model-tests.mdx │ │ │ │ │ │ ├── running-tests-locally.mdx │ │ │ │ │ │ └── view-and-form-tests.mdx │ │ │ │ │ └── upgrading/ │ │ │ │ │ ├── 2x-to-3x.mdx │ │ │ │ │ ├── 3x-to-4x.mdx │ │ │ │ │ ├── changelog.mdx │ │ │ │ │ └── index.mdx │ │ │ │ ├── content.config.ts │ │ │ │ └── sidebars/ │ │ │ │ ├── v2-5-0.json │ │ │ │ ├── v3-0-0.json │ │ │ │ ├── v4-0-0.json │ │ │ │ └── v4-0-1-snapshot.json │ │ │ └── tsconfig.json │ │ ├── landing/ │ │ │ ├── astro.config.mjs │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── layouts/ │ │ │ │ │ └── BaseLayout.astro │ │ │ │ └── pages/ │ │ │ │ └── index.astro │ │ │ └── tsconfig.json │ │ └── packages/ │ │ ├── astro.config.mjs │ │ ├── package.json │ │ ├── public/ │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ └── PackageCard.astro │ │ │ ├── layouts/ │ │ │ │ └── BaseLayout.astro │ │ │ ├── lib/ │ │ │ │ ├── markdown.test.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── registry.test.ts │ │ │ │ └── registry.ts │ │ │ └── pages/ │ │ │ ├── [name].astro │ │ │ └── index.astro │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── tsconfig.base.json │ └── vitest.config.ts └── wheels.json