In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.
Each project using Forest needs a minimal maintenance of the agent dependency installed since day one.
Such maintenance will ensure the best possible experience with the platform: new features, performance improvements, reactive support, and so on.In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in the section below, the important lifecycle dates per agent stack and versions.
Before jumping into your favorite stack tab, you’ll find below the detailed definition of the agent lifecycle dates:
Date
Definition
Initial Release
It marks the date of the official release of a new agent major version, and will, as a consequence, engage Forest on a minimal 18 months period guaranty to keep the agent features 100% compatible with the platform, to provide maintenance, troubleshooting or support, to fix defects, bugs and vulnerabilities.
End-of-Support
At this date, Forest will no longer provide maintenance, troubleshooting or support, and will no longer fix defects, bugs or vulnerabilities.
End-of-Life
At this date, Forest will not guarantee the agent will be usable. It is very likely that your agent integration will break your admin panel, as we will start removing some legacy features support on our platform.
A new agent generation has been released to integrate with Node.js projects.
The only way to keep your Forest project running in the future will be to migrate from the agent v9 to the new Node.js agent.
Please follow the dedicated migration guide.
A new agent generation has been released to integrate with Node.js projects.
The only way to keep your Forest project running in the future will be to migrate from the agent v9 to the new Node.js agent.
Please follow the dedicated migration guide.
A new agent generation has been released to integrate with Django projects.
The only way to keep your Forest project running in 2025 will be to migrate from the legacy agent to the new Python agent.
Please follow the dedicated migration guide.
A new agent generation has been released to integrate with Laravel projects.
The only way to keep your Forest project running in 2025 will be to migrate from the legacy agent to the new PHP agent.
Please follow the dedicated migration guide.
Version
Initial Release
Alive
Active Support
End-of-Support
End-of-Life
Lifetime
v1
2022-04-15
🟠
🔴
2024-06-30
2024-12-31
~2.5 years
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Forest Documentation","colors":{"primary":"#3F5B1E","light":"#DDF327","dark":"#3F5B1E"},"logo":{"light":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/Standard.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=d4e172941c964df57009cfa8be809b96","dark":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/LIME.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=91e95470256b93527860cba6c206cbc4"},"favicon":{"light":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/Standard.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=d4e172941c964df57009cfa8be809b96","dark":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/LIME.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=91e95470256b93527860cba6c206cbc4"},"navbar":{"links":[{"href":"mailto:support@forestadmin.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.forestadmin.com"}},"footer":{"socials":{"twitter":"https://twitter.com/forest_admin","github":"https://github.com/ForestAdmin","linkedin":"https://linkedin.com/company/forestadmin"}},"contextual":{"options":["copy","view","claude","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"forest","hasAudioNarration":false,"actualSubdomain":"forest","customDomains":["docs.forest.app"],"gitSource":{"type":"github","owner":"forestadmin","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf6d816c71dd37a9886272","collectionId":"9dc51c9e-d6b1-40fa-91f8-b482cc9be35c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf6d816c71dd37a9886272"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adf6d816c71dd37a9886272","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Legacy","count":289},{"language":"default","tag":"JavaScript Agents","count":141},{"language":"default","tag":"Ruby Agent","count":140},{"language":"default","tag":"Product","count":113},{"language":"default","tag":"Integrations","count":64},{"language":"default","tag":"Actions","count":48},{"language":"default","tag":"Smart Action Examples","count":34},{"language":"default","tag":"Process","count":32},{"language":"default","tag":"Upgrade","count":31},{"language":"default","tag":"Connect","count":30}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@forestadmin.com"}},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"legacy/javascript-agents/how-tos/releases-support/overview","slug":"/legacy/javascript-agents/how-tos/releases-support/overview","pageMetadata":{"title":"Releases Support","description":"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.","href":"/legacy/javascript-agents/how-tos/releases-support/overview"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`introduction`,children:`Introduction`}),`\n`,_jsx(_components.p,{children:`Each project using Forest needs a minimal maintenance of the agent dependency installed since day one.\nSuch maintenance will ensure the best possible experience with the platform: new features, performance improvements, reactive support, and so on.`}),`\n`,_jsx(_components.p,{children:`In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in the section below, the important lifecycle dates per agent stack and versions.`}),`\n`,_jsx(Heading,{level:`2`,id:`definitions`,children:`Definitions`}),`\n`,_jsx(_components.p,{children:`Before jumping into your favorite stack tab, you’ll find below the detailed definition of the agent lifecycle dates:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Date`}),_jsx(_components.th,{children:`Definition`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Initial Release`}),_jsx(_components.td,{children:`It marks the date of the official release of a new agent major version, and will, as a consequence, engage Forest on a minimal 18 months period guaranty to keep the agent features 100% compatible with the platform, to provide maintenance, troubleshooting or support, to fix defects, bugs and vulnerabilities.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`End-of-Support`}),_jsx(_components.td,{children:`At this date, Forest will no longer provide maintenance, troubleshooting or support, and will no longer fix defects, bugs or vulnerabilities.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`End-of-Life`}),_jsx(_components.td,{children:`At this date, Forest will not guarantee the agent will be usable. It is very likely that your agent integration will break your admin panel, as we will start removing some legacy features support on our platform.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`releases-information-per-stack`,children:`Releases information per stack`}),`\n`,_jsx(Heading,{level:`3`,id:`express-sequelize`,children:`Express Sequelize`}),`\n`,_jsxs(_components.p,{children:[`A new agent generation has been released to integrate with Node.js projects.\nThe only way to keep your Forest project running in the future will be to migrate from the `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/forest-express-sequelize`,children:`agent v9`}),` to the new `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/agent-nodejs`,children:`Node.js agent`}),`.\nPlease follow the dedicated `,_jsx(_components.a,{href:`https://docs.forestadmin.com/developer-guide-agents-nodejs/getting-started/migrating`,children:`migration guide`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Version`}),_jsx(_components.th,{children:`Initial Release`}),_jsx(_components.th,{children:`Alive`}),_jsx(_components.th,{children:`Active Support`}),_jsx(_components.th,{children:`End-of-Support`}),_jsx(_components.th,{children:`End-of-Life`}),_jsx(_components.th,{children:`Lifetime`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v9`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-10-09`}),_jsx(_components.td,{children:`🟢`}),_jsx(_components.td,{children:`🟢`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v8`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2021-07-19`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-12-31`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2024-06-30`}),_jsx(_components.td,{children:`~3 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v7`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2021-02-22`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-12-31`}),_jsx(_components.td,{children:`~3 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v6`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2020-03-17`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-06-30`}),_jsx(_components.td,{children:`~3.5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v5`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2019-10-31`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-06-30`}),_jsx(_components.td,{children:`~3.5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v4`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2019-10-04`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~3 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v3`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2019-04-22`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~3.5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v2`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2017-11-30`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v1`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2016-02-06`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~7 years`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`express-mongoose`,children:`Express Mongoose`}),`\n`,_jsxs(_components.p,{children:[`A new agent generation has been released to integrate with Node.js projects.\nThe only way to keep your Forest project running in the future will be to migrate from the `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/forest-express-mongoose`,children:`agent v9`}),` to the new `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/agent-nodejs`,children:`Node.js agent`}),`.\nPlease follow the dedicated `,_jsx(_components.a,{href:`https://docs.forestadmin.com/developer-guide-agents-nodejs/getting-started/migrating`,children:`migration guide`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Version`}),_jsx(_components.th,{children:`Initial Release`}),_jsx(_components.th,{children:`Alive`}),_jsx(_components.th,{children:`Active Support`}),_jsx(_components.th,{children:`End-of-Support`}),_jsx(_components.th,{children:`End-of-Life`}),_jsx(_components.th,{children:`Lifetime`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v9`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-10-09`}),_jsx(_components.td,{children:`🟢`}),_jsx(_components.td,{children:`🟢`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v8`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2021-07-19`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-12-31`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2024-06-30`}),_jsx(_components.td,{children:`~3 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v7`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2021-02-22`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-12-31`}),_jsx(_components.td,{children:`~3 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v6`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2020-03-17`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-06-30`}),_jsx(_components.td,{children:`~3.5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v5`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2019-10-31`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2023-06-30`}),_jsx(_components.td,{children:`~3.5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v4`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2019-10-04`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~3 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v3`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2019-04-22`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~3.5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v2`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2017-11-30`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~5 years`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v1`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2016-02-06`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-12-31`}),_jsx(_components.td,{children:`~7 years`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`django`,children:`Django`}),`\n`,_jsxs(_components.p,{children:[`A new agent generation has been released to integrate with Django projects.\nThe only way to keep your Forest project running in 2025 will be to migrate from the `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/django-forestadmin`,children:`legacy agent`}),` to the new `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/agent-python`,children:`Python agent`}),`.\nPlease follow the dedicated `,_jsx(_components.a,{href:`https://docs.forestadmin.com/developer-guide-agents-python/getting-started/migrating`,children:`migration guide`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Version`}),_jsx(_components.th,{children:`Initial Release`}),_jsx(_components.th,{children:`Alive`}),_jsx(_components.th,{children:`Active Support`}),_jsx(_components.th,{children:`End-of-Support`}),_jsx(_components.th,{children:`End-of-Life`}),_jsx(_components.th,{children:`Lifetime`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v1`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2021-08-13`}),_jsx(_components.td,{children:`🟠`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2024-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2024-12-31`}),_jsx(_components.td,{children:`~3.5 years`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`laravel`,children:`Laravel`}),`\n`,_jsxs(_components.p,{children:[`A new agent generation has been released to integrate with Laravel projects.\nThe only way to keep your Forest project running in 2025 will be to migrate from the `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/laravel-forestadmin`,children:`legacy agent`}),` to the new `,_jsx(_components.a,{href:`https://github.com/ForestAdmin/agent-php`,children:`PHP agent`}),`.\nPlease follow the dedicated `,_jsx(_components.a,{href:`https://docs.forestadmin.com/developer-guide-agents-php/getting-started/migrating`,children:`migration guide`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Version`}),_jsx(_components.th,{children:`Initial Release`}),_jsx(_components.th,{children:`Alive`}),_jsx(_components.th,{children:`Active Support`}),_jsx(_components.th,{children:`End-of-Support`}),_jsx(_components.th,{children:`End-of-Life`}),_jsx(_components.th,{children:`Lifetime`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`v1`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2022-04-15`}),_jsx(_components.td,{children:`🟠`}),_jsx(_components.td,{children:`🔴`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2024-06-30`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2024-12-31`}),_jsx(_components.td,{children:`~2.5 years`})]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Releases Support","description":"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.","href":"/legacy/javascript-agents/how-tos/releases-support/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Introduction","slug":"introduction","depth":2,"children":[]},{"title":"Definitions","slug":"definitions","depth":2,"children":[]},{"title":"Releases information per stack","slug":"releases-information-per-stack","depth":2,"children":[{"title":"Express Sequelize","slug":"express-sequelize","depth":3,"children":[]},{"title":"Express Mongoose","slug":"express-mongoose","depth":3,"children":[]},{"title":"Django","slug":"django","depth":3,"children":[]},{"title":"Laravel","slug":"laravel","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"forest","siteName":"Forest Documentation","title":"Releases Support - Forest Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-12T08:02:31.660Z","originalFileLocation":"legacy/javascript-agents/how-tos/releases-support/overview.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Forest Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Releases Support - Forest Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Forest Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://forest.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Releases+Support\u0026amp;description=In+order+to+give+more+visibility+to+our+developers+community%2C+about+agent+usability+and+support+in+the+future%2C+you+will+find%2C+in+this+page%2C+the+important+lifecy\u0026amp;theme=7cc620c0b37a08e7a7deb699\u0026amp;signature=5f89511175f64824cf2225218a119f219e0ac091ab36b843eda740ec1fd7ae9b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Releases Support - Forest Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://forest.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Releases+Support\u0026amp;description=In+order+to+give+more+visibility+to+our+developers+community%2C+about+agent+usability+and+support+in+the+future%2C+you+will+find%2C+in+this+page%2C+the+important+lifecy\u0026amp;theme=7cc620c0b37a08e7a7deb699\u0026amp;signature=5f89511175f64824cf2225218a119f219e0ac091ab36b843eda740ec1fd7ae9b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Forest Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3F5B1E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/legacy/javascript-agents/how-tos/releases-support/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.forest.app/#organization\",\"name\":\"Forest Documentation\",\"url\":\"https://docs.forest.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/Standard.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=d4e172941c964df57009cfa8be809b96\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.forest.app#website\",\"name\":\"Forest Documentation\",\"url\":\"https://docs.forest.app\",\"publisher\":{\"@id\":\"https://docs.forest.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview#webpage\",\"url\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview\",\"name\":\"Releases Support\",\"description\":\"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.\",\"dateModified\":\"2026-06-12T08:02:31.660Z\",\"isPartOf\":{\"@id\":\"https://docs.forest.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Overview\",\"item\":\"https://docs.forest.app/legacy/agents-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Releases Support\",\"item\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview#article\",\"headline\":\"Releases Support\",\"name\":\"Releases Support\",\"description\":\"In order to give more visibility to our developers community, about agent usability and support in the future, you will find, in this page, the important lifecycle dates per agent stack and versions.\",\"url\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/releases-support/overview#webpage\"},\"dateModified\":\"2026-06-12T08:02:31.660Z\",\"publisher\":{\"@id\":\"https://docs.forest.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.forest.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Forest Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Forest Documentation","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/intro-to-forest-admin"}]},{"tab":"Product","pages":[{"title":"Product","href":"/product/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/overview"}]},{"tab":"Legacy","groups":[{"group":"Overview","pages":[{"title":"Legacy agents","href":"/legacy/agents-overview"},{"group":"Migration guide","pages":[{"title":"Migrating from Agent v1 to v2","href":"/guides/migration/from-v1/overview"},{"title":"Migrating datasources","href":"/guides/migration/from-v1/steps/datasources"},{"title":"Migrating Smart Actions","href":"/guides/migration/from-v1/steps/smart-actions"},{"title":"Migrating Smart Fields","href":"/guides/migration/from-v1/steps/smart-fields"},{"title":"Migrating Smart Relationships","href":"/guides/migration/from-v1/steps/smart-relationships"},{"title":"Migrating Smart Segments","description":"How to migrate smart segments from Agent v1 to the new agent","href":"/guides/migration/from-v1/steps/smart-segments"}]},{"title":"Releases Support","href":"/legacy/javascript-agents/how-tos/releases-support/overview"}]},{"group":"JavaScript Agents","pages":[{"group":"Models","pages":[{"title":"Models","description":"⚠️ This page and sub-pages are relevant only if you installed Forest directly on a database (SQL/Mongodb). If you installed in a Rails/Django/Laravel app, you manage your models like you normal","href":"/legacy/javascript-agents/reference-guide/models/overview"},{"title":"Enrich your models","href":"/legacy/javascript-agents/reference-guide/models/enrich-your-models"},{"group":"Relationships","pages":[{"title":"Relationships","href":"/legacy/javascript-agents/reference-guide/models/relationships/overview"},{"group":"Create a Smart relationship","pages":[{"title":"Create a Smart relationship","href":"/legacy/javascript-agents/reference-guide/models/relationships/create-a-smart-relationship/overview"},{"title":"GetIdsFromRequest","href":"/legacy/javascript-agents/reference-guide/models/relationships/create-a-smart-relationship/getidsfromrequest"}]},{"group":"Smart Relationship Examples","pages":[{"title":"Smart Relationship Examples","href":"/legacy/javascript-agents/reference-guide/models/relationships/smart-relationship-examples/README"},{"title":"Smart hasMany relationship in mongoDB","href":"/legacy/javascript-agents/reference-guide/models/relationships/smart-relationship-examples/smart-hasmany-relationship-in-mongodb"}]}]}]},{"group":"Actions","pages":[{"title":"Actions","href":"/legacy/javascript-agents/reference-guide/actions/overview"},{"group":"Create and manage Smart Actions","pages":[{"title":"Create and manage Smart Actions","href":"/legacy/javascript-agents/reference-guide/actions/create-and-manage-smart-actions/overview"},{"title":"Use a Smart Action Form","href":"/legacy/javascript-agents/reference-guide/actions/create-and-manage-smart-actions/use-a-smart-action-form"},{"title":"Smart Action Intents","href":"/legacy/javascript-agents/reference-guide/actions/create-and-manage-smart-actions/use-action-intent"}]},{"group":"Smart Action Examples","pages":[{"title":"Smart Action Examples","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/README"},{"title":"Calculate the distance between two string addresses","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/calculate-the-distance-between-two-string-addresses"},{"title":"Impersonate a user","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/impersonate-a-user"},{"title":"Create a record with a multiselect through a many-to-many relationship","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/create-a-record-with-a-multiselect-through-a-many-to-many-relationship"},{"title":"Handle enums with alias labels in a smart action","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/handle-enums-with-alias-labels-in-a-smart-action"},{"title":"Dropdown with list of values in smart action form","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/dropdown-with-list-of-values-in-smart-action-form"},{"title":"Custom dynamic dropdown in a form using smart collections","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/custom-dynamic-dropdown-in-a-form-using-smart-collections"},{"title":"Refresh hasMany relationship in smart action","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/refresh-hasmany-relationship-in-smart-action"},{"title":"Smart segment to restrict access to an action on a record details view","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/smart-segment-to-restrict-access-to-an-action-on-a-record-details-view"},{"title":"BelongsToMany edition through smart collection","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/belongstomany-edition-through-smart-collection"},{"title":"Upload files to amazon s3","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/upload-files-to-amazon-s3"},{"title":"Upload several files with the File Picker","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/upload-several-files-with-the-file-picker"},{"title":"Retrieve smart field info in a smart action","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/retrieve-smart-field-info-in-a-smart-action"},{"title":"Smart action to create several records from the input of a single smart action form","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/smart-action-to-create-several-records-from-the-input-of-a-single-smart-action-form"},{"title":"Add many existing records at the same time (hasMany-belongsTo relationship)","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/add-many-existing-records-at-the-same-time-hasmany-belongsto-relationship"},{"title":"Call a n8n webhook","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/call-a-webhook-with-record-ids"},{"title":"Anonymize users in bulk","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/update-users-in-bulk"}]}]},{"group":"Smart Fields","pages":[{"title":"Smart Fields","href":"/legacy/javascript-agents/reference-guide/smart-fields/overview"},{"group":"Smart Field Examples","pages":[{"title":"Smart Field Examples","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/README"},{"title":"Add an HTML credit card as a smart field in a summary view","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/add-an-html-credit-card-as-a-smart-field-in-a-summary-view"},{"title":"Display field with complex info in html format (rich text editor)","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/display-field-with-complex-info-in-html-format-rich-text-editor"},{"title":"Generate signed urls to display S3 files in a smart field","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/generate-signed-urls-to-display-s3-files-in-a-smart-field"},{"title":"Print a status object in a single line field","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/print-a-status-object-in-a-single-line-field"},{"title":"Sort by smart field","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field"},{"title":"Sort by smart field that includes value from a belongsTo relationship","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field-that-includes-value-from-a-belongsto-relationship"},{"title":"Add fields destined to the create form","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/add-fields-destined-to-the-create-form"},{"title":"Add validation to a smart field edition","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/add-validation-to-a-smart-field-edition"},{"title":"Display smart field as progress bar using rich text editor","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/display-smart-field-as-progress-bar-using-rich-text-editor"},{"title":"Update point geometry field using a smart field and algolia api","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/update-point-geometry-field-using-a-smart-field-and-algolia-api"}]}]},{"group":"Smart Collections","pages":[{"title":"Smart Collections","href":"/legacy/javascript-agents/reference-guide/smart-collections/overview"},{"group":"Examples","pages":[{"title":"Examples","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/README"},{"title":"Create a Smart Collection with Amazon S3","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/amazon-s3-integration-example"},{"title":"Smart relationship between model and stripe cards","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/smart-relationship-between-model-and-stripe-cards"},{"title":"Create records from a Smart collection","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/create-records-from-a-smart-collection"},{"title":"Searchable smart collection with records fetched from hubspot API","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/searchable-smart-collection-with-records-fetched-from-hubspot-api"}]},{"title":"Serializing your records","href":"/legacy/javascript-agents/reference-guide/smart-collections/serializing-your-records"}]},{"group":"Routes","pages":[{"title":"Routes","href":"/legacy/javascript-agents/reference-guide/routes/overview"},{"title":"Default routes","href":"/legacy/javascript-agents/reference-guide/routes/default-routes"},{"title":"Extend a route","href":"/legacy/javascript-agents/reference-guide/routes/extend-a-route"},{"title":"Override a route","href":"/legacy/javascript-agents/reference-guide/routes/override-a-route"}]},{"group":"Integrations","pages":[{"title":"Integrations","href":"/legacy/javascript-agents/reference-guide/integrations/README"},{"title":"Stripe","href":"/legacy/javascript-agents/reference-guide/integrations/stripe"},{"title":"Mixpanel","href":"/legacy/javascript-agents/reference-guide/integrations/mixpanel"},{"title":"Intercom","href":"/legacy/javascript-agents/reference-guide/integrations/intercom"},{"group":"Elasticsearch","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/README"},{"title":"Interact with your Elasticsearch data","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/interact-with-your-elasticsearch-data"},{"title":"Elasticsearch service/utils","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/elasticsearch-service-utils"},{"title":"Another example","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/another-example"}]},{"group":"Zendesk","pages":[{"title":"Zendesk","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/overview"},{"title":"Authentication, Filtering \u0026 Sorting","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/authentication-filtering-and-sorting"},{"title":"Display Zendesk tickets","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/display-zendesk-tickets"},{"title":"Display Zendesk users","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/display-zendesk-users"},{"title":"View tickets related to a user","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/view-tickets-related-to-a-user"},{"title":"Bonus: Direct link to Zendesk + change priority of a ticket","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/bonus-direct-link-to-zendesk--and--change-priority-of-a-ticket"}]},{"group":"Dwolla","pages":[{"title":"Dwolla","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/README"},{"title":"Display Dwolla customers","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/display-dwolla-customers"},{"title":"Display Dwolla funding sources","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/display-dwolla-funding-sources"},{"title":"Display Dwolla transfers","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/display-dwolla-transfers"},{"title":"Link users and Dwolla customers","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/link-users-and-dwolla-customers"},{"title":"Dwolla Service","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/dwolla-service"}]},{"title":"Razorpay","href":"/legacy/javascript-agents/reference-guide/integrations/razorpay"},{"group":"Hubspot","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/hubspot/README"},{"title":"Create a Hubspot company","href":"/legacy/javascript-agents/reference-guide/integrations/hubspot/create-a-hubspot-company"},{"title":"Display Hubspot companies","href":"/legacy/javascript-agents/reference-guide/integrations/hubspot/display-hubspot-companies"}]},{"group":"Twilio","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/twilio/README"},{"title":"Send an SMS with Twilio and Zapier","href":"/legacy/javascript-agents/reference-guide/integrations/twilio/send-an-sms-with-twilio-and-zapier"}]},{"title":"Azure Table Storage","href":"/legacy/javascript-agents/reference-guide/integrations/azure-table-storage"},{"group":"Slack","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/slack/README"},{"title":"Send Smart Action notifications to Slack","href":"/legacy/javascript-agents/reference-guide/integrations/slack/send-smart-action-notifications-to-slack"}]},{"group":"Algolia","pages":[{"title":"Algolia","href":"/legacy/javascript-agents/reference-guide/integrations/algolia/README"},{"title":"Geocode an address with Algolia","href":"/legacy/javascript-agents/reference-guide/integrations/algolia/geocode-an-address-with-algolia"}]}]},{"group":"Smart Views","pages":[{"title":"Smart Views","href":"/legacy/javascript-agents/reference-guide/smart-views/overview"},{"title":"Create a Map view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-map-view"},{"title":"Create a Calendar view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-calendar-view"},{"title":"Create a Shipping view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-shipping-view"},{"title":"Create a Gallery view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-gallery-view"},{"title":"Create a custom tinder-like validation view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-custom-tinder-like-validation-view"},{"title":"Create a dynamic calendar view for an event-booking use case","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-dynamic-calendar-view-for-an-event-booking-use-case"},{"title":"Create a custom moderation view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-custom-moderation-view"}]},{"title":"Smart Segments","href":"/legacy/javascript-agents/reference-guide/smart-segments"},{"group":"Scopes","pages":[{"title":"Scopes","href":"/legacy/javascript-agents/reference-guide/scopes/overview"},{"title":"Create a scope more than one level away based on a Smart field","href":"/legacy/javascript-agents/reference-guide/scopes/create-a-scope-more-than-one-level-away-based-on-a-smart-field"},{"title":"Scope on a smart field extracting a json's column attribute","href":"/legacy/javascript-agents/reference-guide/scopes/scope-on-a-smart-field-extracting-a-jsons-column-attribute"}]},{"title":"Performance","href":"/legacy/javascript-agents/reference-guide/performance"},{"group":"Charts","pages":[{"title":"Charts","href":"/legacy/javascript-agents/reference-guide/charts/overview"},{"title":"Create an API-based Chart","href":"/legacy/javascript-agents/reference-guide/charts/create-an-api-based-chart"},{"title":"Create a Smart Chart","href":"/legacy/javascript-agents/reference-guide/charts/create-a-smart-chart"},{"title":"Create Charts with AWS Redshift","href":"/legacy/javascript-agents/reference-guide/charts/create-charts-with-aws-redshift"}]},{"group":"Setup","pages":[{"title":"Setup","href":"/legacy/javascript-agents/how-tos/setup/README"},{"title":"Install","href":"/legacy/javascript-agents/how-tos/setup/install"},{"title":"Connecting Forest to Your Database (Forest Cloud)","href":"/legacy/javascript-agents/how-tos/setup/connecting-forest-admin-to-your-database-forest-cloud"},{"title":"Forest IP white-listing (Forest Cloud)","href":"/legacy/javascript-agents/how-tos/setup/forest-admin-ip-white-listing-forest-cloud"},{"title":"Why HTTPS is necessary even locally","href":"/legacy/javascript-agents/how-tos/setup/why-https-is-necessary-even-locally"},{"title":"Troubleshooting","href":"/legacy/javascript-agents/how-tos/setup/troubleshooting"},{"title":"Prevent permission errors at installation","href":"/legacy/javascript-agents/how-tos/setup/prevent-permission-errors-at-installation"},{"title":"Deploy Your Admin Backend With Aws","href":"/legacy/javascript-agents/how-tos/setup/deploy-your-admin-backend-with-aws"},{"title":"Deploy your admin backend on Heroku","href":"/legacy/javascript-agents/how-tos/setup/deploy-to-production-on-heroku"},{"title":"Deploy your admin backend to Ubuntu server","href":"/legacy/javascript-agents/how-tos/setup/deploy-to-production-to-ubuntu-server"},{"title":"Deploy your admin backend to Google Cloud Platform","href":"/legacy/javascript-agents/how-tos/setup/deploy-your-admin-backend-with-google-cloud-platform"},{"title":"Install Forest on a remote machine","href":"/legacy/javascript-agents/how-tos/setup/install-forest-admin-on-a-remote-machine"},{"title":"Use Forest with a read-only database","href":"/legacy/javascript-agents/how-tos/setup/use-forest-admin-with-a-read-only-database"},{"title":"Configuring CORS headers","href":"/legacy/javascript-agents/how-tos/setup/configuring-cors-headers"},{"title":"Running Forest on multiple servers","href":"/legacy/javascript-agents/how-tos/setup/running-forest-admin-on-multiple-servers"}]},{"group":"Upgrade","pages":[{"title":"Upgrade","href":"/legacy/javascript-agents/how-tos/maintain/README"},{"group":"Upgrade notes","pages":[{"title":"Upgrade notes (SQL, Mongodb)","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/README"},{"title":"Upgrade to v9","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v9"},{"title":"Upgrade to v8","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v8"},{"title":"Upgrade to v7","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v7"},{"title":"Upgrade to v6","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v6"},{"title":"Upgrade to v5","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v5"},{"title":"Upgrade to v4","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v4"},{"title":"Upgrade to v3","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v3"}]},{"title":"Update your models' definition","href":"/legacy/javascript-agents/how-tos/maintain/update-your-models-definition"},{"title":"Monitor your Forest's status","href":"/legacy/javascript-agents/how-tos/maintain/monitor-your-forests-status"},{"title":"Manage your Forest environments programmatically","href":"/legacy/javascript-agents/how-tos/maintain/manage-your-forest-admin-programmatically"},{"title":"Changing your domain name","href":"/legacy/javascript-agents/how-tos/maintain/changing-your-domain-name"},{"title":"Migrate to the new role system","href":"/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system"},{"title":"Push your new version to production","href":"/legacy/javascript-agents/how-tos/maintain/push-your-new-version-to-production"}]},{"group":"Databases","pages":[{"title":"Readme","href":"/legacy/javascript-agents/how-tos/databases/README"},{"title":"Use a demo SQL database","href":"/legacy/javascript-agents/how-tos/databases/use-a-demo-database"},{"title":"Populate a postgreSQL database on Heroku","href":"/legacy/javascript-agents/how-tos/databases/populate-a-postgresql-database-on-heroku"},{"title":"Connect to a read replica database","href":"/legacy/javascript-agents/how-tos/databases/connect-to-a-read-replica-database"},{"title":"Plug multiple schemas","href":"/legacy/javascript-agents/how-tos/databases/plug-multiple-schemas"},{"title":"Add new databases","href":"/legacy/javascript-agents/how-tos/databases/add-new-databases"},{"title":"Manage SQL views","href":"/legacy/javascript-agents/how-tos/databases/manage-sql-views"}]},{"group":"Settings","pages":[{"title":"Settings","href":"/legacy/javascript-agents/how-tos/settings/README"},{"title":"Customize your /forest folder","href":"/legacy/javascript-agents/how-tos/settings/customize-your-forest-folder"},{"title":"Disable automatic Forest schema update","href":"/legacy/javascript-agents/how-tos/settings/disable-automatic-forest-admin-schema-update"},{"title":"Include/exclude models","href":"/legacy/javascript-agents/how-tos/settings/include-exclude-models"},{"title":"Display extensive logs","href":"/legacy/javascript-agents/how-tos/settings/display-extensive-logs"}]}]},{"group":"Ruby Agent","pages":[{"group":"Models","pages":[{"title":"Models","href":"/legacy/ruby-agent/reference-guide/models/overview"},{"title":"Enrich your models","href":"/legacy/ruby-agent/reference-guide/models/enrich-your-models"},{"group":"Relationships","pages":[{"title":"Relationships","href":"/legacy/ruby-agent/reference-guide/models/relationships/overview"},{"group":"Create a Smart relationship","pages":[{"title":"Create a Smart relationship","href":"/legacy/ruby-agent/reference-guide/models/relationships/create-a-smart-relationship/overview"},{"title":"GetIdsFromRequest","href":"/legacy/ruby-agent/reference-guide/models/relationships/create-a-smart-relationship/getidsfromrequest"}]},{"group":"Smart Relationship Examples","pages":[{"title":"Smart Relationship Examples","href":"/legacy/ruby-agent/reference-guide/models/relationships/smart-relationship-examples/README"}]}]}]},{"group":"Actions","pages":[{"title":"Actions","href":"/legacy/ruby-agent/reference-guide/actions/overview"},{"group":"Create and manage Smart Actions","pages":[{"title":"Create and manage Smart Actions","href":"/legacy/ruby-agent/reference-guide/actions/create-and-manage-smart-actions/overview"},{"title":"Use a Smart Action Form","href":"/legacy/ruby-agent/reference-guide/actions/create-and-manage-smart-actions/use-a-smart-action-form"},{"title":"Smart Action Intents","href":"/legacy/ruby-agent/reference-guide/actions/create-and-manage-smart-actions/use-action-intent"}]},{"group":"Smart Action Examples","pages":[{"title":"Smart Action Examples","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/README"},{"title":"Calculate the distance between two string addresses","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/calculate-the-distance-between-two-string-addresses"},{"title":"Impersonate a user","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/impersonate-a-user"},{"title":"Create a record with a multiselect through a many-to-many relationship","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/create-a-record-with-a-multiselect-through-a-many-to-many-relationship"},{"title":"Handle enums with alias labels in a smart action","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/handle-enums-with-alias-labels-in-a-smart-action"},{"title":"Dropdown with list of values in smart action form","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/dropdown-with-list-of-values-in-smart-action-form"},{"title":"Custom dynamic dropdown in a form using smart collections","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/custom-dynamic-dropdown-in-a-form-using-smart-collections"},{"title":"Refresh hasMany relationship in smart action","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/refresh-hasmany-relationship-in-smart-action"},{"title":"Smart segment to restrict access to an action on a record details view","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/smart-segment-to-restrict-access-to-an-action-on-a-record-details-view"},{"title":"BelongsToMany edition through smart collection","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/belongstomany-edition-through-smart-collection"},{"title":"Upload files to amazon s3","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/upload-files-to-amazon-s3"},{"title":"Upload several files with the File Picker","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/upload-several-files-with-the-file-picker"},{"title":"Retrieve smart field info in a smart action","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/retrieve-smart-field-info-in-a-smart-action"},{"title":"Smart action to create several records from the input of a single smart action form","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/smart-action-to-create-several-records-from-the-input-of-a-single-smart-action-form"},{"title":"Add many existing records at the same time (hasMany-belongsTo relationship)","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/add-many-existing-records-at-the-same-time-hasmany-belongsto-relationship"},{"title":"Call a n8n webhook","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/call-a-webhook-with-record-ids"},{"title":"Anonymize users in bulk","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/update-users-in-bulk"}]}]},{"group":"Smart Fields","pages":[{"title":"Smart Fields","href":"/legacy/ruby-agent/reference-guide/smart-fields/overview"},{"group":"Smart Field Examples","pages":[{"title":"Smart Field Examples","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/README"},{"title":"Add an HTML credit card as a smart field in a summary view","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/add-an-html-credit-card-as-a-smart-field-in-a-summary-view"},{"title":"Display field with complex info in html format (rich text editor)","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/display-field-with-complex-info-in-html-format-rich-text-editor"},{"title":"Generate signed urls to display S3 files in a smart field","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/generate-signed-urls-to-display-s3-files-in-a-smart-field"},{"title":"Print a status object in a single line field","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/print-a-status-object-in-a-single-line-field"},{"title":"Sort by smart field","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field"},{"title":"Sort by smart field that includes value from a belongsTo relationship","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field-that-includes-value-from-a-belongsto-relationship"},{"title":"Add fields destined to the create form","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/add-fields-destined-to-the-create-form"},{"title":"Add validation to a smart field edition","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/add-validation-to-a-smart-field-edition"},{"title":"Display smart field as progress bar using rich text editor","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/display-smart-field-as-progress-bar-using-rich-text-editor"},{"title":"Update point geometry field using a smart field and algolia api","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/update-point-geometry-field-using-a-smart-field-and-algolia-api"}]}]},{"group":"Smart Collections","pages":[{"title":"Smart Collections","href":"/legacy/ruby-agent/reference-guide/smart-collections/overview"},{"group":"Examples","pages":[{"title":"Examples","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/README"},{"title":"Create a Smart Collection with Amazon S3","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/amazon-s3-integration-example"},{"title":"Smart relationship between model and stripe cards","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/smart-relationship-between-model-and-stripe-cards"},{"title":"Create records from a Smart collection","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/create-records-from-a-smart-collection"},{"title":"Searchable smart collection with records fetched from hubspot API","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/searchable-smart-collection-with-records-fetched-from-hubspot-api"}]},{"title":"Serializing your records","href":"/legacy/ruby-agent/reference-guide/smart-collections/serializing-your-records"}]},{"group":"Routes","pages":[{"title":"Routes","href":"/legacy/ruby-agent/reference-guide/routes/overview"},{"title":"Default routes","href":"/legacy/ruby-agent/reference-guide/routes/default-routes"},{"title":"Extend a route","href":"/legacy/ruby-agent/reference-guide/routes/extend-a-route"},{"title":"Override a route","href":"/legacy/ruby-agent/reference-guide/routes/override-a-route"}]},{"group":"Integrations","pages":[{"title":"Integrations","href":"/legacy/ruby-agent/reference-guide/integrations/README"},{"title":"Stripe","href":"/legacy/ruby-agent/reference-guide/integrations/stripe"},{"title":"Mixpanel","href":"/legacy/ruby-agent/reference-guide/integrations/mixpanel"},{"title":"Intercom","href":"/legacy/ruby-agent/reference-guide/integrations/intercom"},{"group":"Elasticsearch","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/README"},{"title":"Interact with your Elasticsearch data","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/interact-with-your-elasticsearch-data"},{"title":"Elasticsearch service/utils","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/elasticsearch-service-utils"},{"title":"Another example","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/another-example"}]},{"group":"Zendesk","pages":[{"title":"Zendesk","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/overview"},{"title":"Authentication, Filtering \u0026 Sorting","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/authentication-filtering-and-sorting"},{"title":"Display Zendesk tickets","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/display-zendesk-tickets"},{"title":"Display Zendesk users","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/display-zendesk-users"},{"title":"View tickets related to a user","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/view-tickets-related-to-a-user"},{"title":"Bonus: Direct link to Zendesk + change priority of a ticket","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/bonus-direct-link-to-zendesk--and--change-priority-of-a-ticket"}]},{"group":"Dwolla","pages":[{"title":"Dwolla","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/README"},{"title":"Display Dwolla customers","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/display-dwolla-customers"},{"title":"Display Dwolla funding sources","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/display-dwolla-funding-sources"},{"title":"Display Dwolla transfers","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/display-dwolla-transfers"},{"title":"Link users and Dwolla customers","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/link-users-and-dwolla-customers"},{"title":"Dwolla Service","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/dwolla-service"}]},{"title":"Razorpay","href":"/legacy/ruby-agent/reference-guide/integrations/razorpay"},{"group":"Hubspot","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/hubspot/README"},{"title":"Create a Hubspot company","href":"/legacy/ruby-agent/reference-guide/integrations/hubspot/create-a-hubspot-company"},{"title":"Display Hubspot companies","href":"/legacy/ruby-agent/reference-guide/integrations/hubspot/display-hubspot-companies"}]},{"group":"Twilio","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/twilio/README"},{"title":"Send an SMS with Twilio and Zapier","href":"/legacy/ruby-agent/reference-guide/integrations/twilio/send-an-sms-with-twilio-and-zapier"}]},{"title":"Azure Table Storage","href":"/legacy/ruby-agent/reference-guide/integrations/azure-table-storage"},{"group":"Slack","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/slack/README"},{"title":"Send Smart Action notifications to Slack","href":"/legacy/ruby-agent/reference-guide/integrations/slack/send-smart-action-notifications-to-slack"}]},{"group":"Algolia","pages":[{"title":"Algolia","href":"/legacy/ruby-agent/reference-guide/integrations/algolia/README"},{"title":"Geocode an address with Algolia","href":"/legacy/ruby-agent/reference-guide/integrations/algolia/geocode-an-address-with-algolia"}]}]},{"group":"Smart Views","pages":[{"title":"Smart Views","href":"/legacy/ruby-agent/reference-guide/smart-views/overview"},{"title":"Create a Map view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-map-view"},{"title":"Create a Calendar view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-calendar-view"},{"title":"Create a Shipping view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-shipping-view"},{"title":"Create a Gallery view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-gallery-view"},{"title":"Create a custom tinder-like validation view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-custom-tinder-like-validation-view"},{"title":"Create a dynamic calendar view for an event-booking use case","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-dynamic-calendar-view-for-an-event-booking-use-case"},{"title":"Create a custom moderation view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-custom-moderation-view"}]},{"title":"Smart Segments","href":"/legacy/ruby-agent/reference-guide/smart-segments"},{"group":"Scopes","pages":[{"title":"Scopes","href":"/legacy/ruby-agent/reference-guide/scopes/overview"},{"title":"Create a scope more than one level away based on a Smart field","href":"/legacy/ruby-agent/reference-guide/scopes/create-a-scope-more-than-one-level-away-based-on-a-smart-field"},{"title":"Scope on a smart field extracting a json's column attribute","href":"/legacy/ruby-agent/reference-guide/scopes/scope-on-a-smart-field-extracting-a-jsons-column-attribute"}]},{"title":"Performance","href":"/legacy/ruby-agent/reference-guide/performance"},{"group":"Charts","pages":[{"title":"Charts","href":"/legacy/ruby-agent/reference-guide/charts/overview"},{"title":"Create an API-based Chart","href":"/legacy/ruby-agent/reference-guide/charts/create-an-api-based-chart"},{"title":"Create a Smart Chart","href":"/legacy/ruby-agent/reference-guide/charts/create-a-smart-chart"},{"title":"Create Charts with AWS Redshift","href":"/legacy/ruby-agent/reference-guide/charts/create-charts-with-aws-redshift"}]},{"group":"Setup","pages":[{"title":"Setup","href":"/legacy/ruby-agent/how-tos/setup/README"},{"title":"Install","href":"/legacy/ruby-agent/how-tos/setup/install"},{"title":"Connecting Forest to Your Database (Forest Cloud)","href":"/legacy/ruby-agent/how-tos/setup/connecting-forest-admin-to-your-database-forest-cloud"},{"title":"Forest IP white-listing (Forest Cloud)","href":"/legacy/ruby-agent/how-tos/setup/forest-admin-ip-white-listing-forest-cloud"},{"title":"Why HTTPS is necessary even locally","href":"/legacy/ruby-agent/how-tos/setup/why-https-is-necessary-even-locally"},{"title":"Troubleshooting","href":"/legacy/ruby-agent/how-tos/setup/troubleshooting"},{"title":"Prevent permission errors at installation","href":"/legacy/ruby-agent/how-tos/setup/prevent-permission-errors-at-installation"},{"title":"Deploy Your Admin Backend With Aws","href":"/legacy/ruby-agent/how-tos/setup/deploy-your-admin-backend-with-aws"},{"title":"Deploy your admin backend on Heroku","href":"/legacy/ruby-agent/how-tos/setup/deploy-to-production-on-heroku"},{"title":"Deploy your admin backend to Ubuntu server","href":"/legacy/ruby-agent/how-tos/setup/deploy-to-production-to-ubuntu-server"},{"title":"Deploy your admin backend to Google Cloud Platform","href":"/legacy/ruby-agent/how-tos/setup/deploy-your-admin-backend-with-google-cloud-platform"},{"title":"Install Forest on a remote machine","href":"/legacy/ruby-agent/how-tos/setup/install-forest-admin-on-a-remote-machine"},{"title":"Use Forest with a read-only database","href":"/legacy/ruby-agent/how-tos/setup/use-forest-admin-with-a-read-only-database"},{"title":"Configuring CORS headers","href":"/legacy/ruby-agent/how-tos/setup/configuring-cors-headers"},{"title":"Running Forest on multiple servers","href":"/legacy/ruby-agent/how-tos/setup/running-forest-admin-on-multiple-servers"}]},{"group":"Upgrade","pages":[{"title":"Upgrade","href":"/legacy/ruby-agent/how-tos/maintain/README"},{"group":"Upgrade notes","pages":[{"title":"Upgrade notes (Rails)","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/README"},{"title":"Upgrade to v9.22","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v9-22"},{"title":"Upgrade to v9","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v9"},{"title":"Upgrade to v8","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v8"},{"title":"Upgrade to v7","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v7"},{"title":"Upgrade to v6","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v6"},{"title":"Upgrade to v5","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/untitled"},{"title":"Upgrade to v4","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v4"},{"title":"Upgrade to v3","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v3"}]},{"title":"Update your models' definition","href":"/legacy/ruby-agent/how-tos/maintain/update-your-models-definition"},{"title":"Monitor your Forest's status","href":"/legacy/ruby-agent/how-tos/maintain/monitor-your-forests-status"},{"title":"Manage your Forest environments programmatically","href":"/legacy/ruby-agent/how-tos/maintain/manage-your-forest-admin-programmatically"},{"title":"Changing your domain name","href":"/legacy/ruby-agent/how-tos/maintain/changing-your-domain-name"},{"title":"Migrate to the new role system","href":"/legacy/ruby-agent/how-tos/maintain/migrate-to-the-new-role-system"},{"title":"Push your new version to production","href":"/legacy/ruby-agent/how-tos/maintain/push-your-new-version-to-production"}]},{"group":"Databases","pages":[{"title":"Readme","href":"/legacy/ruby-agent/how-tos/databases/README"},{"title":"Use a demo SQL database","href":"/legacy/ruby-agent/how-tos/databases/use-a-demo-database"},{"title":"Connect to a read replica database","href":"/legacy/ruby-agent/how-tos/databases/connect-to-a-read-replica-database"},{"title":"Plug multiple schemas","href":"/legacy/ruby-agent/how-tos/databases/plug-multiple-schemas"},{"title":"Add new databases","href":"/legacy/ruby-agent/how-tos/databases/add-new-databases"},{"title":"Manage SQL views","href":"/legacy/ruby-agent/how-tos/databases/manage-sql-views"}]},{"group":"Settings","pages":[{"title":"Settings","href":"/legacy/ruby-agent/how-tos/settings/README"},{"title":"Customize your /forest folder","href":"/legacy/ruby-agent/how-tos/settings/customize-your-forest-folder"},{"title":"Disable automatic Forest schema update","href":"/legacy/ruby-agent/how-tos/settings/disable-automatic-forest-admin-schema-update"},{"title":"Include/exclude models","href":"/legacy/ruby-agent/how-tos/settings/include-exclude-models"},{"title":"Display extensive logs","href":"/legacy/ruby-agent/how-tos/settings/display-extensive-logs"}]}]}]}]},"title":"Releases Support - Forest Documentation","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}