CINXE.COM
<!doctype html><html lang="en" class="lightTheme"><head><meta charSet="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><script defer src="https://assets.canny.io/8a74cf711a070b8491764aadb2320ed50390beb7/SubdomainBundle.js"></script><link href="https://assets.canny.io/8a74cf711a070b8491764aadb2320ed50390beb7/SubdomainBundle.css" media="screen, projection" rel="stylesheet" type="text/css"/><title data-rh="true">Developer Experience | Strapi</title><meta data-rh="true" name="description" content="Give feedback to the Strapi team so we can make more informed product decisions. Powered by Canny."/><meta data-rh="true" property="og:image" content="https://strapi.canny.io/api/og/company?v=dW5kZWZpbmVk"/><meta data-rh="true" property="og:description" content="Give feedback to the Strapi team so we can make more informed product decisions. Powered by Canny."/><meta data-rh="true" property="og:title" content="Developer Experience | Strapi"/><meta data-rh="true" name="twitter:card" content="summary_large_image"/><meta data-rh="true" name="twitter:site" content="@cannyHQ"/><meta data-rh="true" name="twitter:title" content="Developer Experience | Strapi"/><meta data-rh="true" name="twitter:description" content="Give feedback to the Strapi team so we can make more informed product decisions. Powered by Canny."/><meta data-rh="true" name="twitter:image" content="https://strapi.canny.io/api/og/company?v=dW5kZWZpbmVk"/><meta data-rh="true" property="fb:app_id" content="1606018679610384"/><meta data-rh="true" name="google-site-verification" content="hutYg6OBDqx9fLFmeEqY4o0gjWPw2rkFt3-Sp2wbMQc"/><link data-rh="true" href="https://widget.intercom.io" rel="preconnect"/><link data-rh="true" href="https://js.intercomcdn.com" rel="preconnect"/><link data-rh="true" href="https://api-iam.intercom.io" rel="preconnect"/><link data-rh="true" href="https://canny.io/images/a89a07311f28f26319bfef2cc7d20c08.png" rel="icon"/><link data-rh="true" href="https://canny.io/images/c10da7fa9b0d090bab66799c326e1c91.png" rel="apple-touch-icon"/><link data-rh="true" href="https://feedback.strapi.io/developer-experience" rel="canonical"/></head><body class="prelod"><div data-iframe-height="true" id="content"><div><div class="subdomainContainer"><div class="modalContainer"><div class="toastContainer"><div class="publicContainer"><div class="publicNav"><div class="contentContainer"><div class="contentInnerContainer"><div class="publicNavContent"><div class="mainNav"><a class="company" href="/"><div class="logoContainer"><div class="companyLogo"><img fetchpriority="auto" alt="Strapi logo" src="https://canny.io/images/c10da7fa9b0d090bab66799c326e1c91.png"/></div><div class="companyName">Strapi</div></div></a><div class="rightContainer"><a style="background:#4945ff" class="createLink" href="/developer-experience/create"><span class="icon icon-pencil"></span><div class="uppercaseHeader">Create</div></a><div class="authButtons"><button class="buttonV2 primary medium outlined" type="button"><span class="buttonLabel">Log in</span></button><button class="buttonV2 primary medium contained" type="button"><span class="buttonLabel">Sign up</span></button></div></div></div><div class="secondaryNav"><a class="link roadmap" href="/"><span class="subdomainHomeIcons rotate"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-map subdomainHomeIcon"><polygon points="3 6 9 3 15 6 21 3 21 18 15 21 9 18 3 21"></polygon><line x1="9" x2="9" y1="3" y2="18"></line><line x1="15" x2="15" y1="6" y2="21"></line></svg></span><div class="text">Roadmap</div></a><a style="border-bottom-color:#4945ff" class="link feedback hideOnMobile activeLink" href="/developer-experience"><span class="subdomainHomeIcons"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb subdomainHomeIcon" style="stroke:#4945ff"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg></span><div class="text" style="color:#4945ff">Feedback</div></a><div class="link boards hide" style="border-bottom-color:#4945ff"><span class="subdomainHomeIcons"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb subdomainHomeIcon" style="stroke:#4945ff"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg></span><div class="publicNavBoardDropdown"><div class="dropdownContainer controlled"><div class="selection split"><a style="color:#4945ff" class="option" href="/developer-experience"><div class="optionContent"><div>Developer Experience</div><div class="uppercaseHeader count">106</div></div></a><div class="icon-chevron-down"></div></div></div></div></div></div></div></div></div></div><div class="boardHome"><div class="contentContainer"><div class="contentInnerContainer"><div class="subdomainSidebarContainer"><div class="sidebarContainer"><ul class="boardList boardListContainer"><h3 class="textV2 header headingXs">Boards</h3><a class="" href="/customization"><li class="boardItem"><p class="textV2 boardName bodyMd regular-weight">Content Editing XP</p></li></a><a class="" href="/developer-experience"><li class="boardItem active"><p class="textV2 boardName bodyMd regular-weight">Developer Experience</p></li></a><a class="" href="/documentation"><li class="boardItem"><p class="textV2 boardName bodyMd regular-weight">Documentation</p></li></a><a class="" href="/feature-requests"><li class="boardItem"><p class="textV2 boardName bodyMd regular-weight">Feature Requests</p></li></a><a class="" href="/cloud"><li class="boardItem"><p class="textV2 boardName bodyMd regular-weight">Strapi Cloud</p></li></a><a class="" href="/plugin-requests"><li class="boardItem"><p class="textV2 boardName bodyMd regular-weight">Plugin Requests</p></li></a><a class="" href="/security"><li class="boardItem"><p class="textV2 boardName bodyMd regular-weight">Security</p></li></a></ul><div class="cannyAttribution desktopOnly"><div class="firstLine"><a href="https://canny.io/powered-by-canny?utm_source=feedback_subdomain&utm_medium=powered&utm_campaign=strapi&company=Strapi" rel="noopener" target="_blank" class="attribution">Powered by Canny</a></div></div></div><div class="mainContainer"><div class="boardContent"><header class="boardHeader"><div class="nameSection"><h1 class="textV2 headingMd">Developer Experience</h1></div><div class="boardDescription"><div class="markdown"></div></div></header><form class="createPostFormV2 open createPostFormV2 fileForm"><div class="createPostFormSection postForm first"><div class="textInput title focused"><div class="inputContainer"><input type="text" aria-label="Title" placeholder="Short, descriptive title" value=""/></div></div><label for="details" class="descriptionLabel"><p class="textV2 bodyMd medium-weight">Description</p></label><div class="autoResizeTextarea details" style="height:38px"><span class="inputContainer"><textarea aria-label="Details" id="details" placeholder="Any additional details…" rows="1"></textarea></span></div><div class="dropdowns"><div class="dropdownContainer"><p class="textV2 bodyMd medium-weight">Category</p><div class="dropdownV2Wrapper dropdown createPostFormV2CategorySelect"><div class="labelWrapper verticalPlacement"><div class="dropdownV2 singleSelect withBorder"><div class="dropdownWrapperV2"><div class="dropdownHeadWrapper" aria-required="false" aria-label="toggle menu" aria-activedescendant="" aria-controls="downshift-603-menu" aria-expanded="false" aria-haspopup="listbox" aria-labelledby="downshift-603-label" id="downshift-603-toggle-button" role="combobox" tabindex="0"><div class="leftWrapper"><span class="dropdownPlaceholder">Select a category</span></div><span class="rightIcons"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down toggleIcon" aria-label="toggle icon"><path d="m6 9 6 6 6-6"></path></svg></span></div><ul class="selectOptions dropdownOptions-bottom" id="downshift-603-menu" role="listbox" aria-labelledby="downshift-603-label" style="max-width:200px"><ul class="optionsList"><li class="groupTitle"></li><ul><li class="selectOption" tabindex="-1" role="option" aria-selected="false" id="downshift-603-item-0"><span class="optionLeftWrapper"><span class="optionText"><div class="categoryOption">Dynamic Applications</div></span></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check suffixIcon" aria-label="check icon"><path d="M20 6 9 17l-5-5"></path></svg></li><li class="selectOption" tabindex="-1" role="option" aria-selected="false" id="downshift-603-item-1"><span class="optionLeftWrapper"><span class="optionText"><div class="categoryOption">Uncategorized</div></span></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check suffixIcon" aria-label="check icon"><path d="M20 6 9 17l-5-5"></path></svg></li></ul></ul></ul></div></div></div></div></div></div></div><footer class="footer"><div class="ctaSection"><div class="fileInput"><div class="" style="border-style:solid"><div class="gUKhu2OV"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-paperclip "><path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48"></path></svg></div></div><input type="file" accept="image/png,image/jpeg,image/jpeg,image/gif,image/webp,image/svg+xml,text/plain,application/rtf,text/rtf,text/csv,text/markdown,application/x-yaml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.presentation,application/x-iwork-keynote-sffkey,application/json,application/xml,text/xml,video/mp4,video/x-msvideo,video/avi,video/quicktime,video/x-ms-wmv,video/x-flv"/></div><button class="buttonV2 primary medium outlined" type="button"><span class="buttonLabel">Cancel</span></button><button aria-disabled="false" class="tintButton buttonV2 primary medium contained" type="submit" style="background:#4945ff;border-color:#4945ff"><span class="buttonLabel">Create Post</span></button></div></footer></form><div class="postListContainer"><div class="postList"><div class="topContainer"><div class="postListMenu"><div class="menu"><label><span class="text">Showing</span><div class="dropdown"><button class="selector" role="combobox" aria-activedescendant="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-sort-trending" aria-controls="f18768ff-7c6b-d22b-0c2f-d96fd527ad04" aria-expanded="false" aria-haspopup="listbox"><div class="selectedName">Trending</div><div class="icon-chevron-down" aria-hidden="true"></div></button><div class="dropdownContent hidden" id="f18768ff-7c6b-d22b-0c2f-d96fd527ad04" role="listbox"><div class="sorts" role="none"><div class="uppercaseHeader">Sort</div><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-sort-trending" role="option" aria-selected="true" class="" href="/developer-experience?sort=trending"><div class="option selected"><div class="dot" style="background-color:#4945ff"></div>Trending</div></a><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-sort-top" role="option" aria-selected="false" class="" href="/developer-experience?sort=top"><div class="option"><div class="dot" style="background-color:#4945ff"></div>Top</div></a><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-sort-new" role="option" aria-selected="false" class="" href="/developer-experience?sort=new"><div class="option"><div class="dot" style="background-color:#4945ff"></div>New</div></a></div><div class="filters" role="none"><div class="uppercaseHeader">Filter</div><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-status-candidate" role="option" aria-selected="false" class="" href="/developer-experience?status=candidate"><div class="option"><div class="dot" style="background-color:#4945ff"></div>Candidate</div></a><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-status-planned" role="option" aria-selected="false" class="" href="/developer-experience?status=planned"><div class="option"><div class="dot" style="background-color:#4945ff"></div>Planned</div></a><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-status-in-progress" role="option" aria-selected="false" class="" href="/developer-experience?status=in-progress"><div class="option"><div class="dot" style="background-color:#4945ff"></div>In Progress</div></a><a id="filterSortDropdown-f18768ff-7c6b-d22b-0c2f-d96fd527ad04-status-complete" role="option" aria-selected="false" class="" href="/developer-experience?status=complete"><div class="option"><div class="dot" style="background-color:#4945ff"></div>Complete</div></a></div></div></div></label><label><span class="text">posts in</span><div class="dropdown"><button class="selector" role="combobox" aria-activedescendant="__all__" aria-controls="4857d0ce-d1ac-d353-79a2-74985e6efdb9" aria-expanded="false" aria-haspopup="listbox"><div class="selectedName">All Categories</div><div class="icon-chevron-down" aria-hidden="true"></div></button><div class="dropdownContent hidden" id="4857d0ce-d1ac-d353-79a2-74985e6efdb9" role="listbox"><div class="categories" role="none"><a role="option" aria-selected="true" id="__all__" class="" href="/developer-experience"><div class="option">All Categories</div></a><a role="option" aria-selected="false" id="categoryDropdown-4857d0ce-d1ac-d353-79a2-74985e6efdb9-635bf3ac54d0d145100aea4b" class="" href="/developer-experience?category=dynamic-applications"><div class="option">Dynamic Applications<!-- --> (<!-- -->7<!-- -->)</div></a></div></div></div></label></div><div class="searchContainer"><div class="searchBar"><div class="searchInputContents"><div class="textInput searchInput"><div class="inset"><div class="icon icon-search"></div></div><div class="inputContainer"><input type="text" placeholder="Search…" value=""/></div></div></div></div></div></div></div><div class="posts"><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/conditional-fields"><div class="postTitle"><span>Conditional fields</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Display a field only if some conditions are met.</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">43</span><div class="middot">·</div><div class="KpDJjrf6 postStatusV2" style="color:#1fa0ff;background:#1fa0ff20"><p class="textV2 bodySm medium-weight">planned</p></div></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">472</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/gracefully-handle-renaming-of-content-types-and-fields-in-the-ctb"><div class="postTitle"><span>Gracefully handle renaming of Content-types and fields in the CTB</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">If I rename a field in a content-type, and if there is some previous data there (in that field), all the data will be erased. see: https://github.com/strapi/strapi/issues/12626</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">20</span><div class="middot">·</div><div class="KpDJjrf6 postStatusV2" style="color:#85b5b5;background:#85b5b520"><p class="textV2 bodySm medium-weight">candidate</p></div></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">86</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/custom-indexes-in-the-schema"><div class="postTitle"><span>Custom indexes in the schema</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Basically the ability to define indexes in a standard way via the schema file (and maybe in the future via the CTB) module.exports = { collectionName: 'user', info: { singularName: 'user', pluralName: 'users', displayName: 'User', }, options: {}, pluginOptions: { }, attributes: { fullName: { type: 'string', min: 1, required: true, }, }, // experimental feature: indexes: [ { name: 'upload_folders_path_id_index', // this should be optional columns: ['full_name'], // This should be the name of the attribute not the db column name type: 'unique', }, ], };</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">7</span><div class="middot">·</div><div class="KpDJjrf6 postStatusV2" style="color:#1fa0ff;background:#1fa0ff20"><p class="textV2 bodySm medium-weight">planned</p></div></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">94</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/support-pnpm"><div class="postTitle"><span>Support pnpm</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Currently Strapi does not support pnpm and you run into errors when trying to use it. I think Strapi should support pnpm as it saves up on disk space and development time when creating new Strapi projects. This would close https://github.com/strapi/strapi/issues/15511 . There was a little talk about supporting it here: https://github.com/strapi/strapi/issues/9604#issuecomment-792996220 .</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">15</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">78</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/validations"><div class="postTitle"><span>Validations</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Currently, we don't offer the capability to add validations constraints on a field to avoid to contribute unintended data from the administration or the API.</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">5</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">548</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/refresh-token"><div class="postTitle"><span>Refresh token</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">RFC: https://github.com/strapi/rfcs/issues/9 There are many cases where you don't want to login again because a JWT has an expiration date. Here comes the refresh token pattern that allows the client asking a new token without the need to login again. More details https://github.com/strapi/strapi/issues/1676</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">0</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">273</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/allow-array-or-multi-select-field-type"><div class="postTitle"><span>Allow Array or multi-select field type</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">For more information see: https://github.com/strapi/strapi/issues/784</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">10</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">123</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/add-auto-increment-option-to-the-model-attributes"><div class="postTitle"><span>Add auto increment option to the model attributes</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Add auto increment option to the model attributes See: https://github.com/strapi/strapi/issues/2784</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">4</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">21</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/customize-webhook-body"><div class="postTitle"><span>Customize webhook body</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Customize what is sent and possibly include additional keys see: https://github.com/strapi/strapi/issues/7567</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">18</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">59</span></button></div><div class="postListItemV2"><a target="_blank" class="postLink postListItemBody" href="/developer-experience/p/runtiva"><div class="postTitle"><span>Runtiva</span></div><div class="postDetails"><div class="truncate" style="-webkit-line-clamp:2">Sports App</div></div><div class="metaInfo"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square "><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="count">0</span></div></a><button class="postVotesV2"><div class="background"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up chevron"><path d="m18 15-6-6-6 6"></path></svg><span class="score">1</span></button></div></div><div class="postListLoadMore" style="color:#4945ff">Load More<div class="arrow">→</div></div></div></div></div><div class="cannyAttribution mobileOnly"><div class="firstLine"><a href="https://canny.io/powered-by-canny?utm_source=feedback_subdomain&utm_medium=powered&utm_campaign=strapi&company=Strapi" rel="noopener" target="_blank" class="attribution">Powered by Canny</a></div></div></div></div></div></div></div></div></div></div><iframe width="0" height="0" id="canny-product-seen-frame" sandbox="allow-same-origin allow-scripts" scrolling="no" src="https://product-seen.canny.io/product-seen.html" style="border:0;display:none"></iframe><div id="fb-root"></div></div></div></div><script>window.__data = {"actionItemQueries":{"count":0,"postActionsCount":0,"draftActionsCount":0,"draftActionsCountPerSource":{},"updatedAt":null,"items":{},"queries":{}},"asanaSettings":{"error":null,"lastUpdated":null,"loading":true,"data":null},"asanaTaskSuggestions":{},"automations":{"error":null,"lastUpdated":null,"loading":true,"data":null},"azureDevopsSettings":null,"azureDevopsWorkItemSuggestions":{},"boards":{"allLoaded":true,"allLoading":false,"error":null,"items":{"customization":{"_id":"6137b82c9feae77a40da0ce4","activePostCount":141,"postCount":159,"urlName":"customization","name":"Content Editing XP","created":"2021-09-07T19:06:20.483Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":false,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"👉 Let us know more about the problem it would solve by describing as much as possible the use case ","detailsField":"Details","detailsPlaceholder":"Insert how would this help a user's problem","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[],"uncategorized":{"subscribed":false}},"developer-experience":{"_id":"6137b8420e9e821bdf031dd7","activePostCount":106,"postCount":119,"urlName":"developer-experience","name":"Developer Experience","created":"2021-09-07T19:06:42.513Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":false,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[{"_id":"635bf3ac54d0d145100aea4b","created":"2022-10-28T15:22:20.266Z","index":0,"name":"Dynamic Applications","parentID":null,"postCount":7,"urlName":"dynamic-applications"}],"uncategorized":{"subscribed":false}},"documentation":{"_id":"6137bef7277d3f5e2499cfea","activePostCount":32,"postCount":34,"urlName":"documentation","name":"Documentation","created":"2021-09-07T19:35:19.746Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":true,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[{"_id":"6137c0a16ef1490755e0a6f1","created":"2021-09-07T19:42:25.297Z","name":"Developer Docs","parentID":null,"postCount":26,"urlName":"developer-docs"},{"_id":"6137c0a765a92726bfbca325","created":"2021-09-07T19:42:31.528Z","name":"User Guide","parentID":null,"postCount":4,"urlName":"user-guide"},{"_id":"6137c0ac7d76d05f1ef9858e","created":"2021-09-07T19:42:36.958Z","name":"Resource Center","parentID":null,"postCount":1,"urlName":"resource-center"}],"uncategorized":{"subscribed":false}},"feature-requests":{"_id":"6179767c0178b95c34c70015","activePostCount":367,"postCount":385,"urlName":"feature-requests","name":"Feature Requests","created":"2021-10-27T15:55:40.138Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":true,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[],"uncategorized":{"subscribed":false}},"cloud":{"_id":"6137b8144ac867740fa46ccc","activePostCount":16,"postCount":26,"urlName":"cloud","name":"Strapi Cloud","created":"2021-09-07T19:05:56.565Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":false,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[],"uncategorized":{"subscribed":false}},"plugin-requests":{"_id":"61ddc0fc3f733345a8172cff","activePostCount":235,"postCount":247,"urlName":"plugin-requests","name":"Plugin Requests","created":"2022-01-11T17:40:12.961Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":true,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"categories":[],"uncategorized":{"subscribed":false},"boardFields":[]},"security":{"_id":"6137b81c02e22c01a93b25cb","activePostCount":17,"postCount":19,"urlName":"security","name":"Security","created":"2021-09-07T19:06:04.609Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":false,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"categories":[{"_id":"6137c0fe0e9e821bdf03546a","created":"2021-09-07T19:43:58.387Z","name":"Authentication (Logins)","parentID":null,"postCount":10,"urlName":"authentication-logins"},{"_id":"6137c10d23d1881bed19a423","created":"2021-09-07T19:44:13.412Z","name":"Permissions System","parentID":null,"postCount":4,"urlName":"permissions-system"}],"uncategorized":{"subscribed":false},"boardFields":[]}},"lastUpdated":1732462054537},"changelog":null,"changelogEntries":{},"changelogEntryQueries":{},"clickupRules":null,"clickupTaskSuggestions":{},"company":{"error":null,"lastUpdated":1732462054511,"loading":false,"notFound":false,"_id":"60df9525a0120a64742b512b","authRedirectEnabled":false,"boardCount":7,"creatorID":"6076fa6ee326c327f6cdc318","faviconURL":"https:\u002F\u002Fcanny.io\u002Fimages\u002Fa89a07311f28f26319bfef2cc7d20c08.png","logoURL":"https:\u002F\u002Fcanny.io\u002Fimages\u002Fc10da7fa9b0d090bab66799c326e1c91.png","tintColor":"#4945ff","name":"Strapi","subdomain":"strapi","created":"2021-07-02T22:37:25.027Z","__v":0,"ogImageURL":"https:\u002F\u002Fcanny.io\u002Fimages\u002Fog\u002F60df9525a0120a64742b512b\u002F359774284.jpg","enableGlobalPostSearch":true,"authRedirectURL":"","showChangelog":true,"showRoadmap":true,"theme":"light","viewerIsMember":false,"viewerHasThirdPartyMemberships":false,"azure":null,"changelog":{"allowIdentified":false,"domains":["strapi.io"],"enableEmailSubscriptions":false,"private":true,"viewerHasAccess":false,"hasPublishedEntries":false},"primaryDomain":"feedback.strapi.io","privateDomains":[],"features":{"adminRoles":true,"advancedAnalytics":false,"categories":true,"customEmailDomain":false,"customStatuses":true,"disableUserSubmissions":true,"internalComments":true,"liveSupport":true,"postETAs":true,"postOwners":true,"prioritizationRoadmap":true,"privateBoards":true,"privateChangelog":true,"privateComments":true,"removeBranding":false,"tags":true,"unlistedBoards":true,"userProfiles":true,"userSegmentation":true,"customDomain":true,"customPostFields":true,"exportComments":false,"postAutomation":true,"commentSearch":true,"moderationTools":true,"customRoles":false,"autoResponse":true,"privateVotes":true,"voteWeights":true,"summarizeComments":true,"privateAuthors":true,"translateContent":true,"shareRoadmaps":true,"changelogEmailSubscriptions":true,"deduplication":true,"supportExtraction":true,"reviewSources":true,"customAccess":true,"fileAttachments":true},"featureAllowlist":[],"statuses":[{"_id":"6194db0cfdece21ce286aa24","createdBy":null,"showInPublicRoadmap":false,"color":"#a6a6a6","companyID":"60df9525a0120a64742b512b","name":"open","order":0,"type":"Initial","urlName":"open","created":"2021-11-17T10:35:56.175Z","__v":0},{"_id":"6194db0cfdece21ce286aa25","createdBy":null,"showInPublicRoadmap":false,"color":"#85b5b5","companyID":"60df9525a0120a64742b512b","name":"candidate","order":1,"type":"Active","urlName":"candidate","created":"2021-11-17T10:35:56.176Z","__v":0},{"_id":"6194db0cfdece21ce286aa26","createdBy":null,"showInPublicRoadmap":true,"color":"#1fa0ff","companyID":"60df9525a0120a64742b512b","name":"planned","order":2,"type":"Active","urlName":"planned","created":"2021-11-17T10:35:56.176Z","__v":0},{"_id":"6194db0cfdece21ce286aa27","createdBy":null,"showInPublicRoadmap":true,"color":"#c17aff","companyID":"60df9525a0120a64742b512b","name":"in progress","order":3,"type":"Active","urlName":"in-progress","created":"2021-11-17T10:35:56.176Z","__v":0},{"_id":"6194db0cfdece21ce286aa28","createdBy":null,"showInPublicRoadmap":true,"color":"#6cd345","companyID":"60df9525a0120a64742b512b","name":"complete","order":4,"type":"Complete","urlName":"complete","created":"2021-11-17T10:35:56.176Z","__v":0},{"_id":"6194db0cfdece21ce286aa5c","createdBy":null,"showInPublicRoadmap":false,"color":"#ed2b2b","companyID":"60df9525a0120a64742b512b","name":"closed","order":5,"type":"Closed","urlName":"closed","created":"2021-11-17T10:35:56.293Z","__v":0}],"gaPropertyID":"G-26RRSW4MNF","oidc":null,"okta":null,"autopilot":{"additionalCredits":0,"additionalCreditLimit":0,"additionalCreditsDisabled":false,"creditLimit":500,"creditsPerPurchase":100,"planLimit":500,"resets":"2024-12-08T12:00:00.000Z","unlimitedAdditionalCredits":false,"usedCredits":0},"billingData":{"status":"active","isFree":false},"members":[{"_id":"6076ebe0b4d0a10cea20f17d","lastSeen":"2023-10-10T07:38:19.465Z","roleID":"60df9525a0120a64742b5132"},{"_id":"6076fa6ee326c327f6cdc318","lastSeen":"2024-11-05T15:38:15.329Z","roleID":"60df9525a0120a64742b5130"},{"_id":"6079a22c517c44720be71b63","lastSeen":"2024-10-15T09:35:44.892Z","roleID":"60df9525a0120a64742b5132"},{"_id":"60870852506ebc2a01dddb3b","lastSeen":"2024-11-23T01:30:13.428Z","roleID":"60df9525a0120a64742b5132"},{"_id":"608848bfd458b64227b11a52","lastSeen":"2024-09-30T12:03:50.687Z","roleID":"60df9525a0120a64742b5130"},{"_id":"609e3e9b6196347f985ff355","roleID":"60df9525a0120a64742b5132"},{"_id":"6126a70e9ca7ae1738782f59","lastSeen":"2024-11-18T11:18:35.528Z","roleID":"60df9525a0120a64742b5130"},{"_id":"612f45ffb919006116d2d3f2","roleID":"60df9525a0120a64742b5132"},{"_id":"61fbc2c95371b31e0e6622ed","lastSeen":"2024-11-18T11:27:24.201Z","roleID":"60df9525a0120a64742b5131"},{"_id":"642efad70201c009ca7dc133","lastSeen":"2024-11-07T11:02:43.281Z","roleID":"60df9525a0120a64742b5132"},{"_id":"6463d45f648848092129a27c","lastSeen":"2024-05-28T12:27:50.807Z","roleID":"60df9525a0120a64742b5132"},{"_id":"64e630126c0865e4a12d4831","lastSeen":"2024-10-22T13:05:11.740Z","roleID":"60df9525a0120a64742b5131"}]},"cookies":{"__canny__browserTheme":undefined,"__canny__experimentID":undefined,"__canny__locale":undefined,"omitNonEssentialCookies":undefined,"__canny__requestID":"68f9197f-0cec-a238-7999-88ea8f6031f6","__host":"feedback.strapi.io"},"customFields":null,"customPostFields":{"error":null,"lastUpdated":null,"loading":true,"data":null},"dashboardActivity":null,"discordSettings":null,"freshdeskSettings":{"error":null,"lastUpdated":null,"loading":true,"data":null},"githubIssueSuggestions":{},"gongSettings":{"error":null,"lastUpdated":null,"loading":true,"data":null},"gsuiteGroups":null,"helpscoutSettings":{"error":null,"lastUpdated":null,"loading":true,"data":null},"inboxItemQueries":{},"issueSuggestions":{},"jiraRules":{"error":null,"lastUpdated":null,"loading":true,"data":null},"linearIssueSuggestions":{},"linearSettings":null,"mentionSuggestions":{},"notifications":{"error":null,"lastUpdated":1732462054492,"loading":false,"loadingMore":false,"count":0,"hasNextPage":false,"items":[],"lastUpdate":1732462054511,"pages":1},"postDraft":{},"posts":{"6137b8420e9e821bdf031dd7":{"conditional-fields":{"_id":"6238bc9ef0b5095e5becfd45","authorID":"60cafe4b205f34653ed9534a","commentCount":43,"details":"Display a field only if some conditions are met.","score":472,"status":"planned","boardID":"6137b8420e9e821bdf031dd7","title":"Conditional fields","urlName":"conditional-fields","created":"2022-03-21T17:57:50.855Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"gracefully-handle-renaming-of-content-types-and-fields-in-the-ctb":{"_id":"623e0cffd512a471361b290f","authorID":"623e0cff41eeb039738c18d4","commentCount":20,"details":"If I rename a field in a content-type, and if there is some previous data there (in that field), all the data will be erased.\nsee: https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F12626","score":86,"status":"candidate","boardID":"6137b8420e9e821bdf031dd7","title":"Gracefully handle renaming of Content-types and fields in the CTB","urlName":"gracefully-handle-renaming-of-content-types-and-fields-in-the-ctb","created":"2022-03-25T18:42:07.819Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"custom-indexes-in-the-schema":{"_id":"640f8eccc52754450ec8178f","authorID":"623154fd7f16835283efaf18","commentCount":7,"details":"Basically the ability to define indexes in a standard way via the schema file (and maybe in the future via the CTB)\n\n```\n\nmodule.exports = {\n\n collectionName: 'user',\n\n info: {\n\n singularName: 'user',\n\n pluralName: 'users',\n\n displayName: 'User',\n\n },\n\n options: {},\n\n pluginOptions: {\n\n },\n\n attributes: {\n\n fullName: {\n\n type: 'string',\n\n min: 1,\n\n required: true,\n\n },\n\n },\n\n \u002F\u002F experimental feature:\n\n indexes: [\n\n {\n\n name: 'upload_folders_path_id_index', \u002F\u002F this should be optional\n\n columns: ['full_name'], \u002F\u002F This should be the name of the attribute not the db column name\n\n type: 'unique',\n\n },\n\n ],\n\n};\n\n```","score":94,"status":"planned","boardID":"6137b8420e9e821bdf031dd7","title":"Custom indexes in the schema","urlName":"custom-indexes-in-the-schema","created":"2023-03-13T20:59:56.201Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"support-pnpm":{"_id":"63db8641b7164b450587b44b","authorID":"62a9c9ed7b75600ba3100f08","commentCount":15,"details":"Currently Strapi does not support pnpm and you run into errors when trying to use it. I think Strapi should support pnpm as it saves up on disk space and development time when creating new Strapi projects. This would close https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F15511. There was a little talk about supporting it here: https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F9604#issuecomment-792996220.","score":78,"status":"open","boardID":"6137b8420e9e821bdf031dd7","title":"Support pnpm","urlName":"support-pnpm","created":"2023-02-02T09:45:37.278Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"validations":{"_id":"61fbf3022c332b0b515efe04","authorID":"608848bfd458b64227b11a52","commentCount":5,"details":"Currently, we don't offer the capability to add validations constraints on a field to avoid to contribute unintended data from the administration or the API.","score":548,"status":"open","boardID":"6137b8420e9e821bdf031dd7","title":"Validations","urlName":"validations","created":"2022-02-03T15:21:38.272Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"refresh-token":{"_id":"61fbf34464c4a5247609851c","authorID":"608848bfd458b64227b11a52","commentCount":0,"details":"RFC: https:\u002F\u002Fgithub.com\u002Fstrapi\u002Frfcs\u002Fissues\u002F9 \nThere are many cases where you don't want to login again because a JWT has an expiration date. Here comes the refresh token pattern that allows the client asking a new token without the need to login again.\nMore details https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F1676","score":273,"status":"open","boardID":"6137b8420e9e821bdf031dd7","title":"Refresh token","urlName":"refresh-token","created":"2022-02-03T15:22:44.355Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"allow-array-or-multi-select-field-type":{"_id":"623dfa1efb96b239722a6a2a","authorID":"60e85ca4a859d7529c03d9db","commentCount":10,"details":"For more information see: https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F784","score":123,"status":"open","boardID":"6137b8420e9e821bdf031dd7","title":"Allow Array or multi-select field type","urlName":"allow-array-or-multi-select-field-type","created":"2022-03-25T17:21:34.770Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"add-auto-increment-option-to-the-model-attributes":{"_id":"627556e86bd2f86282ee736e","authorID":"60e85ca4a859d7529c03d9db","commentCount":4,"details":"Add auto increment option to the model attributes\nSee: https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F2784","score":21,"status":"open","boardID":"6137b8420e9e821bdf031dd7","title":"Add auto increment option to the model attributes","urlName":"add-auto-increment-option-to-the-model-attributes","created":"2022-05-06T17:12:08.337Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"customize-webhook-body":{"_id":"624246c74a8df23b2965fd65","authorID":"5b3443dacccbdd4f4442f0d2","commentCount":18,"details":"Customize what is sent and possibly include additional keys\nsee: https:\u002F\u002Fgithub.com\u002Fstrapi\u002Fstrapi\u002Fissues\u002F7567","score":59,"status":"open","boardID":"6137b8420e9e821bdf031dd7","title":"Customize webhook body","urlName":"customize-webhook-body","created":"2022-03-28T23:37:43.375Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":true,"lowEngagement":false,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined},"runtiva":{"_id":"671f512d939cc88ce5ac2db9","authorID":"645a68fcb78bb10984e64639","boardID":"6137b8420e9e821bdf031dd7","commentCount":0,"details":"Sports App","score":1,"status":"open","title":"Runtiva","urlName":"runtiva","created":"2024-10-28T08:54:05.397Z","viewerVote":0,"board":{"_id":"6137b8420e9e821bdf031dd7","urlName":"developer-experience","name":"Developer Experience"},"boardCommentsArePrivate":false,"voteSettings":{"highEngagement":false,"lowEngagement":true,"moderateEngagement":false,"votesHidden":false},"filteredScore":undefined}}},"postsActivity":{},"postQueries":{"{\"currentBoard\":\"developer-experience\",\"boardURLNames\":\"developer-experience\",\"sort\":\"trending\"}":{"lastUpdated":1732462054567,"loading":false,"queryParams":{"currentBoard":{"_id":"6137b8420e9e821bdf031dd7","activePostCount":106,"postCount":119,"urlName":"developer-experience","name":"Developer Experience","created":"2021-09-07T19:06:42.513Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":false,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[{"_id":"635bf3ac54d0d145100aea4b","created":"2022-10-28T15:22:20.266Z","index":0,"name":"Dynamic Applications","parentID":null,"postCount":7,"urlName":"dynamic-applications"}],"uncategorized":{"subscribed":false}},"board":{"_id":"6137b8420e9e821bdf031dd7","activePostCount":106,"postCount":119,"urlName":"developer-experience","name":"Developer Experience","created":"2021-09-07T19:06:42.513Z","settings":{"access":"public","allowIdentified":false,"domain":null,"indexed":true,"privateAuthors":false,"privateVotes":false,"segmentURLName":null,"showCreateForm":true,"showVoterNames":false,"verifiedBy":"email"},"strings":{"createCTA":"Create Post","createHeading":"Create a Post","description":"","detailsField":"Details","detailsPlaceholder":"Any additional details…","formCTA":"Share your feedback...","titleField":"Title","titlePlaceholder":"Short, descriptive title"},"boardFields":[],"categories":[{"_id":"635bf3ac54d0d145100aea4b","created":"2022-10-28T15:22:20.266Z","index":0,"name":"Dynamic Applications","parentID":null,"postCount":7,"urlName":"dynamic-applications"}],"uncategorized":{"subscribed":false}}},"hasNextPage":true,"loadingMore":false,"posts":[{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"conditional-fields","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"gracefully-handle-renaming-of-content-types-and-fields-in-the-ctb","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"custom-indexes-in-the-schema","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"support-pnpm","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"validations","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"refresh-token","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"allow-array-or-multi-select-field-type","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"add-auto-increment-option-to-the-model-attributes","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"customize-webhook-body","filteredScore":undefined,"viewerInFilteredVoters":undefined},{"boardID":"6137b8420e9e821bdf031dd7","postURLName":"runtiva","filteredScore":undefined,"viewerInFilteredVoters":undefined}]}},"postSuggestions":{},"queueItemQueries":{"count":0,"postsCount":0,"draftsCount":0,"draftsCountPerSource":{},"updatedAt":null,"items":{},"queries":{}},"sharedRoadmap":null,"sharedRoadmapPosts":null,"reduxAsyncConnect":{"loaded":true,"loadState":{}},"referralSettings":{"error":null,"lastUpdated":null,"loading":true,"data":null},"roadmap":null,"roadmaps":null,"roadmapPosts":{},"routing":{"locationBeforeTransitions":{"pathname":"\u002Fdeveloper-experience","search":"","hash":"","state":undefined,"action":"POP","key":null,"query":{}}},"thirdPartyCompanies":{},"thirdPartyCompanyFeatureRequestsQueries":{"updatedAt":null,"queries":{}},"tpcForFilters":{"companyNames":{},"accountOwnerNames":{},"queries":{},"lastUpdated":null},"thirdPartyCompanyPosts":{},"thirdPartyCompanyQueries":{},"userPosts":{},"userQueries":{},"users":{},"userReactions":{},"userSuggestions":{},"viewer":{"error":null,"lastUpdated":1732462054494,"loading":false,"loggedOut":true},"voteQueries":{},"voters":{},"zoomSettings":{"error":null,"lastUpdated":null,"loading":true,"data":null}};</script><script>document.body.classList.remove('preload');</script></body></html>