CINXE.COM
CLI - Turn-key research data management repository
<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="canonical" href="https://inveniordm.docs.cern.ch/reference/cli/"> <link rel="prev" href="../"> <link rel="next" href="../configuration/"> <link rel="icon" href="../../images/favicon.svg"> <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.40"> <title>CLI - Turn-key research data management repository</title> <link rel="stylesheet" href="../../assets/stylesheets/main.8c3ca2c6.min.css"> <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css"> <link rel="stylesheet" href="../../stylesheets/extra.css"> <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> </head> <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#cli-reference" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="../.." title="Turn-key research data management repository" class="md-header__button md-logo" aria-label="Turn-key research data management repository" data-md-component="logo"> <img src="../../images/logo-rdm.png" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> Turn-key research data management repository </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> CLI </span> </div> </div> </div> <form class="md-header__option" data-md-component="palette"> <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0"> <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="orange" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class="md-search" data-md-component="search" role="dialog"> <label class="md-search__overlay" for="__search"></label> <div class="md-search__inner" role="search"> <form class="md-search__form" name="search"> <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> <label class="md-search__icon md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class="md-search__options" aria-label="Search"> <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> </form> <div class="md-search__output"> <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> <div class="md-search-result" data-md-component="search-result"> <div class="md-search-result__meta"> Initializing search </div> <ol class="md-search-result__list" role="presentation"></ol> </div> </div> </div> </div> </div> <div class="md-header__source"> <a href="https://github.com/inveniosoftware/docs-invenio-rdm" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg> </div> <div class="md-source__repository"> GitHub </div> </a> </div> </nav> </header> <div class="md-container" data-md-component="container"> <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> <div class="md-grid"> <ul class="md-tabs__list"> <li class="md-tabs__item"> <a href="../.." class="md-tabs__link"> Home </a> </li> <li class="md-tabs__item"> <a href="../../features/" class="md-tabs__link"> Features </a> </li> <li class="md-tabs__item"> <a href="../../install/" class="md-tabs__link"> Install </a> </li> <li class="md-tabs__item"> <a href="../../customize/" class="md-tabs__link"> Customize </a> </li> <li class="md-tabs__item"> <a href="../../develop/" class="md-tabs__link"> Develop </a> </li> <li class="md-tabs__item"> <a href="../../deploy/" class="md-tabs__link"> Deploy </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href="../" class="md-tabs__link"> Reference </a> </li> <li class="md-tabs__item"> <a href="../../releases/" class="md-tabs__link"> Releases </a> </li> <li class="md-tabs__item"> <a href="../../maintenance/" class="md-tabs__link"> Maintainers </a> </li> <li class="md-tabs__item"> <a href="../../contribute/" class="md-tabs__link"> Onboard & Contribute </a> </li> </ul> </div> </nav> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="../.." title="Turn-key research data management repository" class="md-nav__button md-logo" aria-label="Turn-key research data management repository" data-md-component="logo"> <img src="../../images/logo-rdm.png" alt="logo"> </a> Turn-key research data management repository </label> <div class="md-nav__source"> <a href="https://github.com/inveniosoftware/docs-invenio-rdm" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg> </div> <div class="md-source__repository"> GitHub </div> </a> </div> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../.." class="md-nav__link"> <span class="md-ellipsis"> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" > <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0"> <span class="md-ellipsis"> Features </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2"> <span class="md-nav__icon md-icon"></span> Features </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../features/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../../features/ux/" class="md-nav__link"> <span class="md-ellipsis"> Beautiful UX </span> </a> </li> <li class="md-nav__item"> <a href="../../features/scalable/" class="md-nav__link"> <span class="md-ellipsis"> Highly scalable </span> </a> </li> <li class="md-nav__item"> <a href="../../features/customization/" class="md-nav__link"> <span class="md-ellipsis"> Customizable </span> </a> </li> <li class="md-nav__item"> <a href="../../features/interoperable/" class="md-nav__link"> <span class="md-ellipsis"> Interoperable </span> </a> </li> <li class="md-nav__item"> <a href="../../features/powerful/" class="md-nav__link"> <span class="md-ellipsis"> Powerful </span> </a> </li> <li class="md-nav__item"> <a href="../../features/secure/" class="md-nav__link"> <span class="md-ellipsis"> Secure </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" > <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0"> <span class="md-ellipsis"> Features walk-through </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2_8"> <span class="md-nav__icon md-icon"></span> Features walk-through </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../features/features-walk-through/" class="md-nav__link"> <span class="md-ellipsis"> Features overview </span> </a> </li> <li class="md-nav__item"> <a href="../../features/features-walk-through/banners/" class="md-nav__link"> <span class="md-ellipsis"> Site banners </span> </a> </li> <li class="md-nav__item"> <a href="../../features/features-walk-through/notifications/" class="md-nav__link"> <span class="md-ellipsis"> Notifications </span> </a> </li> <li class="md-nav__item"> <a href="../../features/features-walk-through/access_requests/" class="md-nav__link"> <span class="md-ellipsis"> Access requests </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" > <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0"> <span class="md-ellipsis"> Install </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> Install </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../install/" class="md-nav__link"> <span class="md-ellipsis"> Quick start </span> </a> </li> <li class="md-nav__item"> <a href="../../install/requirements/" class="md-nav__link"> <span class="md-ellipsis"> System requirements </span> </a> </li> <li class="md-nav__item"> <a href="../../install/cli/" class="md-nav__link"> <span class="md-ellipsis"> Install CLI </span> </a> </li> <li class="md-nav__item"> <a href="../../install/scaffold/" class="md-nav__link"> <span class="md-ellipsis"> Scaffold </span> </a> </li> <li class="md-nav__item"> <a href="../../install/build-setup-run/" class="md-nav__link"> <span class="md-ellipsis"> Build, setup & run </span> </a> </li> <li class="md-nav__item"> <a href="../../install/configuration/" class="md-nav__link"> <span class="md-ellipsis"> Configure </span> </a> </li> <li class="md-nav__item"> <a href="../../install/run/" class="md-nav__link"> <span class="md-ellipsis"> Use </span> </a> </li> <li class="md-nav__item"> <a href="../../install/migrate/" class="md-nav__link"> <span class="md-ellipsis"> Migrate </span> </a> </li> <li class="md-nav__item"> <a href="../../install/destroy/" class="md-nav__link"> <span class="md-ellipsis"> Destroy </span> </a> </li> <li class="md-nav__item"> <a href="../../install/troubleshoot/" class="md-nav__link"> <span class="md-ellipsis"> Troubleshooting </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" > <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0"> <span class="md-ellipsis"> Customize </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4"> <span class="md-nav__icon md-icon"></span> Customize </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" > <label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0"> <span class="md-ellipsis"> Look-and-feel </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_2"> <span class="md-nav__icon md-icon"></span> Look-and-feel </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/look-and-feel/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/look-and-feel/logo/" class="md-nav__link"> <span class="md-ellipsis"> Change logo </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/look-and-feel/templates/" class="md-nav__link"> <span class="md-ellipsis"> Change templates </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/look-and-feel/theme/" class="md-nav__link"> <span class="md-ellipsis"> Change theme </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/look-and-feel/font/" class="md-nav__link"> <span class="md-ellipsis"> Change font </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../../customize/authentication/" class="md-nav__link"> <span class="md-ellipsis"> Authentication </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/emails/" class="md-nav__link"> <span class="md-ellipsis"> Sending emails </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5" > <label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="0"> <span class="md-ellipsis"> Search </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_5"> <span class="md-nav__icon md-icon"></span> Search </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/search/" class="md-nav__link"> <span class="md-ellipsis"> Change facets/sorting </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_6" > <label class="md-nav__link" for="__nav_4_6" id="__nav_4_6_label" tabindex="0"> <span class="md-ellipsis"> Vocabularies </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_6_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_6"> <span class="md-nav__icon md-icon"></span> Vocabularies </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/vocabularies/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/vocabularies/resource_types/" class="md-nav__link"> <span class="md-ellipsis"> Resource types </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/vocabularies/affiliations/" class="md-nav__link"> <span class="md-ellipsis"> Affiliations </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/vocabularies/names/" class="md-nav__link"> <span class="md-ellipsis"> Names </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/vocabularies/funding/" class="md-nav__link"> <span class="md-ellipsis"> Funding </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/vocabularies/subjects/" class="md-nav__link"> <span class="md-ellipsis"> Subjects </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/vocabularies/users/" class="md-nav__link"> <span class="md-ellipsis"> Users </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_7" > <label class="md-nav__link" for="__nav_4_7" id="__nav_4_7_label" tabindex="0"> <span class="md-ellipsis"> Metadata </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_7_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_7"> <span class="md-nav__icon md-icon"></span> Metadata </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/metadata/optional_fields/" class="md-nav__link"> <span class="md-ellipsis"> Optional metadata </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_7_2" > <label class="md-nav__link" for="__nav_4_7_2" id="__nav_4_7_2_label" tabindex="0"> <span class="md-ellipsis"> Custom fields </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_7_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_7_2"> <span class="md-nav__icon md-icon"></span> Custom fields </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/metadata/custom_fields/records/" class="md-nav__link"> <span class="md-ellipsis"> Add fields to records </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/metadata/custom_fields/communities/" class="md-nav__link"> <span class="md-ellipsis"> Add fields to communities </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../../customize/record_landing_page/" class="md-nav__link"> <span class="md-ellipsis"> Record landing page </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/static_pages/" class="md-nav__link"> <span class="md-ellipsis"> Static pages </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/dois/" class="md-nav__link"> <span class="md-ellipsis"> DOI registration </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_11" > <label class="md-nav__link" for="__nav_4_11" id="__nav_4_11_label" tabindex="0"> <span class="md-ellipsis"> Other PIDs integrations </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_11_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_11"> <span class="md-nav__icon md-icon"></span> Other PIDs integrations </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../customize/other-pids/urns/" class="md-nav__link"> <span class="md-ellipsis"> DNB URNs </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../../customize/s3/" class="md-nav__link"> <span class="md-ellipsis"> Storage </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/upload_limits/" class="md-nav__link"> <span class="md-ellipsis"> Upload Limits </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/metadata_only/" class="md-nav__link"> <span class="md-ellipsis"> Metadata-only records </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/Logging/" class="md-nav__link"> <span class="md-ellipsis"> Logging </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/i18n-and-l10n/" class="md-nav__link"> <span class="md-ellipsis"> Internationalisation (i18n) and Localisation (l10n) </span> </a> </li> <li class="md-nav__item"> <a href="../../customize/notifications/" class="md-nav__link"> <span class="md-ellipsis"> Notifications </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" > <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0"> <span class="md-ellipsis"> Develop </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5"> <span class="md-nav__icon md-icon"></span> Develop </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_2" > <label class="md-nav__link" for="__nav_5_2" id="__nav_5_2_label" tabindex="0"> <span class="md-ellipsis"> Getting started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5_2"> <span class="md-nav__icon md-icon"></span> Getting started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/getting-started/source-code/" class="md-nav__link"> <span class="md-ellipsis"> Source code </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/getting-started/package-development/" class="md-nav__link"> <span class="md-ellipsis"> Package development </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/getting-started/instance-development/" class="md-nav__link"> <span class="md-ellipsis"> Instance development </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/getting-started/debugging/" class="md-nav__link"> <span class="md-ellipsis"> Debugging </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/getting-started/code-style/" class="md-nav__link"> <span class="md-ellipsis"> Coding style </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/getting-started/virtualenvs/" class="md-nav__link"> <span class="md-ellipsis"> Virtual environments </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/getting-started/help/" class="md-nav__link"> <span class="md-ellipsis"> Getting help </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/process/" class="md-nav__link"> <span class="md-ellipsis"> Development process </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_3" > <label class="md-nav__link" for="__nav_5_3" id="__nav_5_3_label" tabindex="0"> <span class="md-ellipsis"> Best practices </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_3_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5_3"> <span class="md-nav__icon md-icon"></span> Best practices </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/best-practices/accessibility/" class="md-nav__link"> <span class="md-ellipsis"> Accessibility (a11y) </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/best-practices/commits/" class="md-nav__link"> <span class="md-ellipsis"> Commits, PRs & reviews </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/best-practices/css-js/" class="md-nav__link"> <span class="md-ellipsis"> CSS/JavaScript </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/best-practices/react/" class="md-nav__link"> <span class="md-ellipsis"> React </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/best-practices/ui/" class="md-nav__link"> <span class="md-ellipsis"> User interface </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_4" > <label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex="0"> <span class="md-ellipsis"> Topic guides </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_4_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5_4"> <span class="md-nav__icon md-icon"></span> Topic guides </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/topics/resource/" class="md-nav__link"> <span class="md-ellipsis"> Building resources </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/topics/service/" class="md-nav__link"> <span class="md-ellipsis"> Building services </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/topics/serializers/" class="md-nav__link"> <span class="md-ellipsis"> Building serializers </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/topics/uow/" class="md-nav__link"> <span class="md-ellipsis"> Grouping atomic operations </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/topics/validation/" class="md-nav__link"> <span class="md-ellipsis"> Sanitize input data </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/topics/theming/" class="md-nav__link"> <span class="md-ellipsis"> Theming </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/topics/administration_panel/" class="md-nav__link"> <span class="md-ellipsis"> Administration panel </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_5" > <label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex="0"> <span class="md-ellipsis"> How-to guides </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5_5"> <span class="md-nav__icon md-icon"></span> How-to guides </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/howtos/i18n/" class="md-nav__link"> <span class="md-ellipsis"> Translation (i18n) </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/custom_fields/" class="md-nav__link"> <span class="md-ellipsis"> Create a new custom field </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/custom_code/" class="md-nav__link"> <span class="md-ellipsis"> Create custom code and views </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/add_javascript/" class="md-nav__link"> <span class="md-ellipsis"> Add JavaScript </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/override_components/" class="md-nav__link"> <span class="md-ellipsis"> Override UI React components </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/search_terms_migration/" class="md-nav__link"> <span class="md-ellipsis"> Create search terms mappings </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/alembic/" class="md-nav__link"> <span class="md-ellipsis"> Create a database migration </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/security-fix/" class="md-nav__link"> <span class="md-ellipsis"> Fix a vulnerability </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/dev_email/" class="md-nav__link"> <span class="md-ellipsis"> Test emails locally </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/route_migration/" class="md-nav__link"> <span class="md-ellipsis"> Migrate legacy routes </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/backup_search_indices/" class="md-nav__link"> <span class="md-ellipsis"> Back up search indices </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/restrict_access/" class="md-nav__link"> <span class="md-ellipsis"> Restrict access to pages </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/howtos/notifications/" class="md-nav__link"> <span class="md-ellipsis"> Create and configure notifications </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_6" > <label class="md-nav__link" for="__nav_5_6" id="__nav_5_6_label" tabindex="0"> <span class="md-ellipsis"> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_6_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5_6"> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/architecture/" class="md-nav__link"> <span class="md-ellipsis"> Introduction </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/infrastructure/" class="md-nav__link"> <span class="md-ellipsis"> Infrastructure </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/software/" class="md-nav__link"> <span class="md-ellipsis"> Software </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/runtime/" class="md-nav__link"> <span class="md-ellipsis"> Runtime </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/requests/" class="md-nav__link"> <span class="md-ellipsis"> Requests </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/communities/" class="md-nav__link"> <span class="md-ellipsis"> Communities </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/records/" class="md-nav__link"> <span class="md-ellipsis"> Records </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/event_handling/" class="md-nav__link"> <span class="md-ellipsis"> Event handling </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/notifications/" class="md-nav__link"> <span class="md-ellipsis"> Notifications </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/architecture/reading/" class="md-nav__link"> <span class="md-ellipsis"> Recommended reading </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_7" > <label class="md-nav__link" for="__nav_5_7" id="__nav_5_7_label" tabindex="0"> <span class="md-ellipsis"> Concepts </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_7_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5_7"> <span class="md-nav__icon md-icon"></span> Concepts </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../develop/concepts/concurrency-control/" class="md-nav__link"> <span class="md-ellipsis"> Optimistic concurrency control </span> </a> </li> <li class="md-nav__item"> <a href="../../develop/concepts/transactions/" class="md-nav__link"> <span class="md-ellipsis"> Database transaction management </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../../deploy/" class="md-nav__link"> <span class="md-ellipsis"> Deploy </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" checked> <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex=""> <span class="md-ellipsis"> Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="true"> <label class="md-nav__title" for="__nav_7"> <span class="md-nav__icon md-icon"></span> Reference </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> <span class="md-ellipsis"> CLI </span> <span class="md-nav__icon md-icon"></span> </label> <a href="./" class="md-nav__link md-nav__link--active"> <span class="md-ellipsis"> CLI </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#overview" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> <nav class="md-nav" aria-label="Overview"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#shell-completion" class="md-nav__link"> <span class="md-ellipsis"> Shell completion </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#general-commands" class="md-nav__link"> <span class="md-ellipsis"> General commands </span> </a> <nav class="md-nav" aria-label="General commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#check-requirements" class="md-nav__link"> <span class="md-ellipsis"> check-requirements </span> </a> </li> <li class="md-nav__item"> <a href="#destroy" class="md-nav__link"> <span class="md-ellipsis"> destroy </span> </a> </li> <li class="md-nav__item"> <a href="#init" class="md-nav__link"> <span class="md-ellipsis"> init </span> </a> </li> <li class="md-nav__item"> <a href="#install" class="md-nav__link"> <span class="md-ellipsis"> install </span> </a> </li> <li class="md-nav__item"> <a href="#run" class="md-nav__link"> <span class="md-ellipsis"> run </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#assets-commands" class="md-nav__link"> <span class="md-ellipsis"> Assets commands </span> </a> <nav class="md-nav" aria-label="Assets commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#assets-install" class="md-nav__link"> <span class="md-ellipsis"> assets install </span> </a> </li> <li class="md-nav__item"> <a href="#assets-build" class="md-nav__link"> <span class="md-ellipsis"> assets build </span> </a> </li> <li class="md-nav__item"> <a href="#assets-watch" class="md-nav__link"> <span class="md-ellipsis"> assets watch </span> </a> </li> <li class="md-nav__item"> <a href="#assets-watch-module" class="md-nav__link"> <span class="md-ellipsis"> assets watch-module </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#container-commands" class="md-nav__link"> <span class="md-ellipsis"> Container commands </span> </a> <nav class="md-nav" aria-label="Container commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#containers-build" class="md-nav__link"> <span class="md-ellipsis"> containers build </span> </a> </li> <li class="md-nav__item"> <a href="#containers-destroy" class="md-nav__link"> <span class="md-ellipsis"> containers destroy </span> </a> </li> <li class="md-nav__item"> <a href="#containers-setup" class="md-nav__link"> <span class="md-ellipsis"> containers setup </span> </a> </li> <li class="md-nav__item"> <a href="#containers-start" class="md-nav__link"> <span class="md-ellipsis"> containers start </span> </a> </li> <li class="md-nav__item"> <a href="#containers-status" class="md-nav__link"> <span class="md-ellipsis"> containers status </span> </a> </li> <li class="md-nav__item"> <a href="#containers-stop" class="md-nav__link"> <span class="md-ellipsis"> containers stop </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#packages-commands" class="md-nav__link"> <span class="md-ellipsis"> Packages commands </span> </a> <nav class="md-nav" aria-label="Packages commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#packages-install" class="md-nav__link"> <span class="md-ellipsis"> packages install </span> </a> </li> <li class="md-nav__item"> <a href="#packages-lock" class="md-nav__link"> <span class="md-ellipsis"> packages lock </span> </a> </li> <li class="md-nav__item"> <a href="#packages-outdated" class="md-nav__link"> <span class="md-ellipsis"> packages outdated </span> </a> </li> <li class="md-nav__item"> <a href="#packages-update" class="md-nav__link"> <span class="md-ellipsis"> packages update </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#services-commands" class="md-nav__link"> <span class="md-ellipsis"> Services commands </span> </a> <nav class="md-nav" aria-label="Services commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#services-destroy" class="md-nav__link"> <span class="md-ellipsis"> services destroy </span> </a> </li> <li class="md-nav__item"> <a href="#services-setup" class="md-nav__link"> <span class="md-ellipsis"> services setup </span> </a> </li> <li class="md-nav__item"> <a href="#services-start" class="md-nav__link"> <span class="md-ellipsis"> services start </span> </a> </li> <li class="md-nav__item"> <a href="#services-status" class="md-nav__link"> <span class="md-ellipsis"> services status </span> </a> </li> <li class="md-nav__item"> <a href="#services-stop" class="md-nav__link"> <span class="md-ellipsis"> services stop </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#shell-commands" class="md-nav__link"> <span class="md-ellipsis"> Shell commands </span> </a> <nav class="md-nav" aria-label="Shell commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#shell" class="md-nav__link"> <span class="md-ellipsis"> shell </span> </a> </li> <li class="md-nav__item"> <a href="#pyshell" class="md-nav__link"> <span class="md-ellipsis"> pyshell </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#translations-commands" class="md-nav__link"> <span class="md-ellipsis"> Translations commands </span> </a> <nav class="md-nav" aria-label="Translations commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#translations-extract" class="md-nav__link"> <span class="md-ellipsis"> translations extract </span> </a> </li> <li class="md-nav__item"> <a href="#translations-init" class="md-nav__link"> <span class="md-ellipsis"> translations init </span> </a> </li> <li class="md-nav__item"> <a href="#translations-update" class="md-nav__link"> <span class="md-ellipsis"> translations update </span> </a> </li> <li class="md-nav__item"> <a href="#translations-compile" class="md-nav__link"> <span class="md-ellipsis"> translations compile </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#upgrade-command" class="md-nav__link"> <span class="md-ellipsis"> Upgrade command </span> </a> <nav class="md-nav" aria-label="Upgrade command"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#upgrade" class="md-nav__link"> <span class="md-ellipsis"> upgrade </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#invenio-rdm-commands" class="md-nav__link"> <span class="md-ellipsis"> Invenio RDM commands </span> </a> <nav class="md-nav" aria-label="Invenio RDM commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#rdm" class="md-nav__link"> <span class="md-ellipsis"> rdm </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-pages" class="md-nav__link"> <span class="md-ellipsis"> rdm pages </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-pages-create" class="md-nav__link"> <span class="md-ellipsis"> rdm pages create </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-fixtures" class="md-nav__link"> <span class="md-ellipsis"> rdm fixtures </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-rebuild-all-indices" class="md-nav__link"> <span class="md-ellipsis"> rdm rebuild-all-indices </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../configuration/" class="md-nav__link"> <span class="md-ellipsis"> Configuration </span> </a> </li> <li class="md-nav__item"> <a href="../metadata/" class="md-nav__link"> <span class="md-ellipsis"> Metadata </span> </a> </li> <li class="md-nav__item"> <a href="../metadata/optional_metadata/" class="md-nav__link"> <span class="md-ellipsis"> Optional metadata </span> </a> </li> <li class="md-nav__item"> <a href="../oai_pmh/" class="md-nav__link"> <span class="md-ellipsis"> OAI-PMH </span> </a> </li> <li class="md-nav__item"> <a href="../export_formats/" class="md-nav__link"> <span class="md-ellipsis"> Export formats </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_8" > <label class="md-nav__link" for="__nav_7_8" id="__nav_7_8_label" tabindex="0"> <span class="md-ellipsis"> REST API </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_8_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_7_8"> <span class="md-nav__icon md-icon"></span> REST API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../rest_api_index/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_quickstart/" class="md-nav__link"> <span class="md-ellipsis"> Quickstart </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_communities/" class="md-nav__link"> <span class="md-ellipsis"> Communities </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_drafts_records/" class="md-nav__link"> <span class="md-ellipsis"> Drafts and Records </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_groups/" class="md-nav__link"> <span class="md-ellipsis"> Groups </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_members/" class="md-nav__link"> <span class="md-ellipsis"> Members </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_requests/" class="md-nav__link"> <span class="md-ellipsis"> Requests </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_users/" class="md-nav__link"> <span class="md-ellipsis"> Users </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_reviews/" class="md-nav__link"> <span class="md-ellipsis"> Reviews </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_vocabularies/" class="md-nav__link"> <span class="md-ellipsis"> Vocabularies </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_names/" class="md-nav__link"> <span class="md-ellipsis"> Names </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_funders/" class="md-nav__link"> <span class="md-ellipsis"> Funders </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_awards/" class="md-nav__link"> <span class="md-ellipsis"> Awards </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_oaipmh_sets/" class="md-nav__link"> <span class="md-ellipsis"> OAI-PMH Sets </span> </a> </li> <li class="md-nav__item"> <a href="../rest_api_statistics/" class="md-nav__link"> <span class="md-ellipsis"> Statistics </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_9" > <label class="md-nav__link" for="__nav_7_9" id="__nav_7_9_label" tabindex="0"> <span class="md-ellipsis"> Custom fields </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_9_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_7_9"> <span class="md-nav__icon md-icon"></span> Custom fields </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../custom_fields/widgets/" class="md-nav__link"> <span class="md-ellipsis"> UI widgets </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_10" > <label class="md-nav__link" for="__nav_7_10" id="__nav_7_10_label" tabindex="0"> <span class="md-ellipsis"> Administration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_10_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_7_10"> <span class="md-nav__icon md-icon"></span> Administration </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../administration_reference/" class="md-nav__link"> <span class="md-ellipsis"> Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../file_storage/" class="md-nav__link"> <span class="md-ellipsis"> File storage </span> </a> </li> <li class="md-nav__item"> <a href="../statistics/" class="md-nav__link"> <span class="md-ellipsis"> Usage statistics </span> </a> </li> <li class="md-nav__item"> <a href="../notifications/" class="md-nav__link"> <span class="md-ellipsis"> Notifications </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" > <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0"> <span class="md-ellipsis"> Releases </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8"> <span class="md-nav__icon md-icon"></span> Releases </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/maintenance-policy/" class="md-nav__link"> <span class="md-ellipsis"> Maintenance policy </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/upgrade-policy/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade policy </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/security-policy/" class="md-nav__link"> <span class="md-ellipsis"> Security policy </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_5" > <label class="md-nav__link" for="__nav_8_5" id="__nav_8_5_label" tabindex="0"> <span class="md-ellipsis"> Version v12.0 LTS </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_5"> <span class="md-nav__icon md-icon"></span> Version v12.0 LTS </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v12/version-v12.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v12.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v12/upgrade-v12.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v11 to v12 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_6" > <label class="md-nav__link" for="__nav_8_6" id="__nav_8_6_label" tabindex="0"> <span class="md-ellipsis"> Version v11.0 STS </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_6_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_6"> <span class="md-nav__icon md-icon"></span> Version v11.0 STS </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v11/version-v11.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v11.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v11/upgrade-v11.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v10 to v11 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_7" > <label class="md-nav__link" for="__nav_8_7" id="__nav_8_7_label" tabindex="0"> <span class="md-ellipsis"> Version v9.1 LTS </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_7_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_7"> <span class="md-nav__icon md-icon"></span> Version v9.1 LTS </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v9/version-v9.1.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v9.1 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v9/version-v9.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v9.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/migrate-docker-images/" class="md-nav__link"> <span class="md-ellipsis"> Migrate Docker images </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v9/migrate-opensearch-v9/" class="md-nav__link"> <span class="md-ellipsis"> Migrate v9 to OpenSearch </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v9/upgrade-v9.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v8 to v9 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8" > <label class="md-nav__link" for="__nav_8_8" id="__nav_8_8_label" tabindex="0"> <span class="md-ellipsis"> Legacy Versions </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_8_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8"> <span class="md-nav__icon md-icon"></span> Legacy Versions </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_1" > <label class="md-nav__link" for="__nav_8_8_1" id="__nav_8_8_1_label" tabindex="0"> <span class="md-ellipsis"> Version v10.1 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_1_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_1"> <span class="md-nav__icon md-icon"></span> Version v10.1 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v10/version-v10.1.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v10.1 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v10/version-v10.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v10.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v10/upgrade-v10.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v9 to v10 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/migrate-docker-images/" class="md-nav__link"> <span class="md-ellipsis"> Migrate Docker images </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_2" > <label class="md-nav__link" for="__nav_8_8_2" id="__nav_8_8_2_label" tabindex="0"> <span class="md-ellipsis"> Version v8.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_2"> <span class="md-nav__icon md-icon"></span> Version v8.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v8/version-v8.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v8.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v8/upgrade-v8.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v7 to v8 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_3" > <label class="md-nav__link" for="__nav_8_8_3" id="__nav_8_8_3_label" tabindex="0"> <span class="md-ellipsis"> Version v7.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_3_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_3"> <span class="md-nav__icon md-icon"></span> Version v7.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v7/version-v7.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v7.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v7/upgrade-v7.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v6 to v7 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_4" > <label class="md-nav__link" for="__nav_8_8_4" id="__nav_8_8_4_label" tabindex="0"> <span class="md-ellipsis"> Version v6.0.5 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_4_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_4"> <span class="md-nav__icon md-icon"></span> Version v6.0.5 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v6/version-v6.0.5/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v6.0.5 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v6/upgrade-v6.0.5/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v6.0.x to v6.0.5 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v6/version-v6.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v6.0.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v6/upgrade-v6.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v4 to v6 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_5" > <label class="md-nav__link" for="__nav_8_8_5" id="__nav_8_8_5_label" tabindex="0"> <span class="md-ellipsis"> Version v5.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_5"> <span class="md-nav__icon md-icon"></span> Version v5.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v5/version-v5.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v5.0 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_6" > <label class="md-nav__link" for="__nav_8_8_6" id="__nav_8_8_6_label" tabindex="0"> <span class="md-ellipsis"> Version v4.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_6_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_6"> <span class="md-nav__icon md-icon"></span> Version v4.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v4/version-v4.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v4.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v4/upgrade-v4.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v3 to v4 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_7" > <label class="md-nav__link" for="__nav_8_8_7" id="__nav_8_8_7_label" tabindex="0"> <span class="md-ellipsis"> Version v3.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_7_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_7"> <span class="md-nav__icon md-icon"></span> Version v3.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v3/version-v3.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v3.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v3/upgrade-v3.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v2 to v3 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_8" > <label class="md-nav__link" for="__nav_8_8_8" id="__nav_8_8_8_label" tabindex="0"> <span class="md-ellipsis"> Version v2.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_8_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_8"> <span class="md-nav__icon md-icon"></span> Version v2.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v2/version-v2.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v2.0 </span> </a> </li> <li class="md-nav__item"> <a href="../../releases/v2/upgrade-v2.0/" class="md-nav__link"> <span class="md-ellipsis"> Upgrade from v1 to v2 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8_9" > <label class="md-nav__link" for="__nav_8_8_9" id="__nav_8_8_9_label" tabindex="0"> <span class="md-ellipsis"> Version v1.0 </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_8_9_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_8_8_9"> <span class="md-nav__icon md-icon"></span> Version v1.0 </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../releases/v1/version-v1.0.0/" class="md-nav__link"> <span class="md-ellipsis"> Release Notes v1.0 </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" > <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0"> <span class="md-ellipsis"> Maintainers </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_9"> <span class="md-nav__icon md-icon"></span> Maintainers </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../maintenance/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/newcomers/" class="md-nav__link"> <span class="md-ellipsis"> Newcomers </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/board-workflow/" class="md-nav__link"> <span class="md-ellipsis"> Sprintboard workflow </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/pr-community-board/" class="md-nav__link"> <span class="md-ellipsis"> Community PR board </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/release-management/" class="md-nav__link"> <span class="md-ellipsis"> Release management </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/modules/" class="md-nav__link"> <span class="md-ellipsis"> Modules on GitHub </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/branch-management/" class="md-nav__link"> <span class="md-ellipsis"> Branch management </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/demosite/" class="md-nav__link"> <span class="md-ellipsis"> Demo site & docs </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/docker-images/" class="md-nav__link"> <span class="md-ellipsis"> Docker images </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/rfcs/" class="md-nav__link"> <span class="md-ellipsis"> RFCs </span> </a> </li> <li class="md-nav__item"> <a href="../../maintenance/documentation/" class="md-nav__link"> <span class="md-ellipsis"> Writing documentation </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" > <label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0"> <span class="md-ellipsis"> Onboard & Contribute </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_10"> <span class="md-nav__icon md-icon"></span> Onboard & Contribute </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../contribute/" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="../../contribute/onboarding/" class="md-nav__link"> <span class="md-ellipsis"> Onboarding </span> </a> </li> <li class="md-nav__item"> <a href="../../contribute/code-of-conduct/" class="md-nav__link"> <span class="md-ellipsis"> Code of conduct </span> </a> </li> <li class="md-nav__item"> <a href="../../contribute/copyright-policy/" class="md-nav__link"> <span class="md-ellipsis"> Copyright policy </span> </a> </li> <li class="md-nav__item"> <a href="../../contribute/roadmap/" class="md-nav__link"> <span class="md-ellipsis"> Roadmap </span> </a> </li> <li class="md-nav__item"> <a href="../../contribute/translators-guide/" class="md-nav__link"> <span class="md-ellipsis"> Translators guide </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#overview" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> <nav class="md-nav" aria-label="Overview"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#shell-completion" class="md-nav__link"> <span class="md-ellipsis"> Shell completion </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#general-commands" class="md-nav__link"> <span class="md-ellipsis"> General commands </span> </a> <nav class="md-nav" aria-label="General commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#check-requirements" class="md-nav__link"> <span class="md-ellipsis"> check-requirements </span> </a> </li> <li class="md-nav__item"> <a href="#destroy" class="md-nav__link"> <span class="md-ellipsis"> destroy </span> </a> </li> <li class="md-nav__item"> <a href="#init" class="md-nav__link"> <span class="md-ellipsis"> init </span> </a> </li> <li class="md-nav__item"> <a href="#install" class="md-nav__link"> <span class="md-ellipsis"> install </span> </a> </li> <li class="md-nav__item"> <a href="#run" class="md-nav__link"> <span class="md-ellipsis"> run </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#assets-commands" class="md-nav__link"> <span class="md-ellipsis"> Assets commands </span> </a> <nav class="md-nav" aria-label="Assets commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#assets-install" class="md-nav__link"> <span class="md-ellipsis"> assets install </span> </a> </li> <li class="md-nav__item"> <a href="#assets-build" class="md-nav__link"> <span class="md-ellipsis"> assets build </span> </a> </li> <li class="md-nav__item"> <a href="#assets-watch" class="md-nav__link"> <span class="md-ellipsis"> assets watch </span> </a> </li> <li class="md-nav__item"> <a href="#assets-watch-module" class="md-nav__link"> <span class="md-ellipsis"> assets watch-module </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#container-commands" class="md-nav__link"> <span class="md-ellipsis"> Container commands </span> </a> <nav class="md-nav" aria-label="Container commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#containers-build" class="md-nav__link"> <span class="md-ellipsis"> containers build </span> </a> </li> <li class="md-nav__item"> <a href="#containers-destroy" class="md-nav__link"> <span class="md-ellipsis"> containers destroy </span> </a> </li> <li class="md-nav__item"> <a href="#containers-setup" class="md-nav__link"> <span class="md-ellipsis"> containers setup </span> </a> </li> <li class="md-nav__item"> <a href="#containers-start" class="md-nav__link"> <span class="md-ellipsis"> containers start </span> </a> </li> <li class="md-nav__item"> <a href="#containers-status" class="md-nav__link"> <span class="md-ellipsis"> containers status </span> </a> </li> <li class="md-nav__item"> <a href="#containers-stop" class="md-nav__link"> <span class="md-ellipsis"> containers stop </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#packages-commands" class="md-nav__link"> <span class="md-ellipsis"> Packages commands </span> </a> <nav class="md-nav" aria-label="Packages commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#packages-install" class="md-nav__link"> <span class="md-ellipsis"> packages install </span> </a> </li> <li class="md-nav__item"> <a href="#packages-lock" class="md-nav__link"> <span class="md-ellipsis"> packages lock </span> </a> </li> <li class="md-nav__item"> <a href="#packages-outdated" class="md-nav__link"> <span class="md-ellipsis"> packages outdated </span> </a> </li> <li class="md-nav__item"> <a href="#packages-update" class="md-nav__link"> <span class="md-ellipsis"> packages update </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#services-commands" class="md-nav__link"> <span class="md-ellipsis"> Services commands </span> </a> <nav class="md-nav" aria-label="Services commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#services-destroy" class="md-nav__link"> <span class="md-ellipsis"> services destroy </span> </a> </li> <li class="md-nav__item"> <a href="#services-setup" class="md-nav__link"> <span class="md-ellipsis"> services setup </span> </a> </li> <li class="md-nav__item"> <a href="#services-start" class="md-nav__link"> <span class="md-ellipsis"> services start </span> </a> </li> <li class="md-nav__item"> <a href="#services-status" class="md-nav__link"> <span class="md-ellipsis"> services status </span> </a> </li> <li class="md-nav__item"> <a href="#services-stop" class="md-nav__link"> <span class="md-ellipsis"> services stop </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#shell-commands" class="md-nav__link"> <span class="md-ellipsis"> Shell commands </span> </a> <nav class="md-nav" aria-label="Shell commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#shell" class="md-nav__link"> <span class="md-ellipsis"> shell </span> </a> </li> <li class="md-nav__item"> <a href="#pyshell" class="md-nav__link"> <span class="md-ellipsis"> pyshell </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#translations-commands" class="md-nav__link"> <span class="md-ellipsis"> Translations commands </span> </a> <nav class="md-nav" aria-label="Translations commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#translations-extract" class="md-nav__link"> <span class="md-ellipsis"> translations extract </span> </a> </li> <li class="md-nav__item"> <a href="#translations-init" class="md-nav__link"> <span class="md-ellipsis"> translations init </span> </a> </li> <li class="md-nav__item"> <a href="#translations-update" class="md-nav__link"> <span class="md-ellipsis"> translations update </span> </a> </li> <li class="md-nav__item"> <a href="#translations-compile" class="md-nav__link"> <span class="md-ellipsis"> translations compile </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#upgrade-command" class="md-nav__link"> <span class="md-ellipsis"> Upgrade command </span> </a> <nav class="md-nav" aria-label="Upgrade command"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#upgrade" class="md-nav__link"> <span class="md-ellipsis"> upgrade </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#invenio-rdm-commands" class="md-nav__link"> <span class="md-ellipsis"> Invenio RDM commands </span> </a> <nav class="md-nav" aria-label="Invenio RDM commands"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#rdm" class="md-nav__link"> <span class="md-ellipsis"> rdm </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-pages" class="md-nav__link"> <span class="md-ellipsis"> rdm pages </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-pages-create" class="md-nav__link"> <span class="md-ellipsis"> rdm pages create </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-fixtures" class="md-nav__link"> <span class="md-ellipsis"> rdm fixtures </span> </a> </li> <li class="md-nav__item"> <a href="#rdm-rebuild-all-indices" class="md-nav__link"> <span class="md-ellipsis"> rdm rebuild-all-indices </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <h1 id="cli-reference">CLI reference<a class="headerlink" href="#cli-reference" title="Permanent link">¶</a></h1> <p><strong>Summary</strong></p> <p>The following document is a reference guide to the commands provided by the Invenio-CLI tool.</p> <p><strong>Intended audience</strong></p> <p>This guide is intended for system administrators and developers of InvenioRDM.</p> <h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h2> <p>Following is an overview of the root-level commands in Invenio-CLI:</p> <table> <thead> <tr> <th align="left">Command</th> <th align="left">Description</th> <th align="center">Supported</th> </tr> </thead> <tbody> <tr> <td align="left"><code>assets</code></td> <td align="left">Statics and assets management commands.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>check-requirements</code></td> <td align="left">Checks the system fulfills the pre-requirements.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>containers</code></td> <td align="left">Containers management commands.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>destroy</code></td> <td align="left">Removes all associated resources (containers, images, virtual environment, etc.)</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>init</code></td> <td align="left">Initializes the application according to the chosen flavour (Currently only RDM is available)</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>install</code></td> <td align="left">Installs the project locally.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>packages</code></td> <td align="left">Commands for package management.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>pyshell</code></td> <td align="left">Python shell command.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>run</code></td> <td align="left">Starts the local development server.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>services</code></td> <td align="left">Commands for services management.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>shell</code></td> <td align="left">Shell command.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>translations</code></td> <td align="left">Extracts, initializes and compile message catalogs (i18n)</td> <td align="center">v1.0.12</td> </tr> <tr> <td align="left"><code>upgrade</code></td> <td align="left">Upgrades the current application to the specified InvenioRDM version</td> <td align="center">-</td> </tr> </tbody> </table> <h3 id="shell-completion">Shell completion<a class="headerlink" href="#shell-completion" title="Permanent link">¶</a></h3> <p>Invenio-CLI provides support for tab completion of commands and options for Bash, Zsh and Fish shells. You can install the shell completion</p> <p>For Bash, add this to <code>~/.bashrc</code>:</p> <div class="highlight"><pre><span></span><code>eval "$(_INVENIO_CLI_COMPLETE=source_bash invenio-cli)" </code></pre></div> <p>For Zsh, add this to <code>~/.zshrc</code>:</p> <div class="highlight"><pre><span></span><code>eval "$(_INVENIO_CLI_COMPLETE=source_zsh invenio-cli)" </code></pre></div> <p>For Fish, add this to <code>~/.config/fish/completions/invenio-cli.fish</code>:</p> <div class="highlight"><pre><span></span><code>eval (env _INVENIO_CLI_COMPLETE=source_fish invenio-cli) </code></pre></div> <p>The above <code>eval</code> commands will invoke your application every time a shell is started. This may slow down shell startup time.</p> <p>Alternatively, create an activation script:</p> <p>For Bash:</p> <div class="highlight"><pre><span></span><code>_INVENIO_CLI_COMPLETE=source_bash invenio-cli > invenio-cli-complete.sh </code></pre></div> <p>For Zsh:</p> <div class="highlight"><pre><span></span><code>_INVENIO_CLI_COMPLETE=source_zsh invenio-cli > invenio-cli-complete.sh </code></pre></div> <p>In <code>.bashrc</code> or <code>.zshrc</code>, source the script instead of the <code>eval</code> command:</p> <div class="highlight"><pre><span></span><code>. /path/to/invenio-cli-complete.sh </code></pre></div> <p>For Fish, add the file to the completions directory:</p> <div class="highlight"><pre><span></span><code>_INVENIO_CLI_COMPLETE=source_fish invenio-cli > ~/.config/fish/completions/invenio-cli-complete.fish </code></pre></div> <h2 id="general-commands">General commands<a class="headerlink" href="#general-commands" title="Permanent link">¶</a></h2> <h3 id="check-requirements"><strong><code>check-requirements</code></strong><a class="headerlink" href="#check-requirements" title="Permanent link">¶</a></h3> <p>Checks the minimal system requirements are met.</p> <p><strong>Options</strong></p> <ul> <li><code>-d</code>, <code>--development</code> Check also development requirements (defaults to not checking development requirements).</li> </ul> <h3 id="destroy"><strong><code>destroy</code></strong><a class="headerlink" href="#destroy" title="Permanent link">¶</a></h3> <p>Removes all associated resources (containers, images, volumes, Python virtual environment).</p> <p>All data in services are lost.</p> <h3 id="init"><strong><code>init</code></strong><a class="headerlink" href="#init" title="Permanent link">¶</a></h3> <p>Initializes the application skeleton for the chosen flavour. Currently only <code>rdm</code> flavour is supported and it is the default value.</p> <p><strong>Options</strong></p> <ul> <li><code>-t</code>, <code>--template</code> <code>TEXT</code> Path or git URL to the Cookiecutter template.</li> <li><code>-c</code>, <code>--checkout</code> <code>TEXT</code> Branch, tag or commit to checkout if <code>--template</code> is a git URL.</li> <li><code>--config .invenio</code>, Auto pre-filling of initialization questions from the .invenio file. Refer to <code>.invenio</code> for file structure within your instance for more info.</li> </ul> <h3 id="install"><strong><code>install</code></strong><a class="headerlink" href="#install" title="Permanent link">¶</a></h3> <p>Installs the project locally.</p> <p>Installs Python dependencies, creates an instance directory, symlinks the <code>invenio.cfg</code>, templates, static files, assets, and finally builds front-end assets.</p> <p>A python virtual environment is created if it does not already exist.</p> <p><strong>Options</strong></p> <ul> <li><code>--pre</code> If specified, allows the installation of alpha releases</li> <li><code>-p</code>, <code>--production</code> / <code>-d</code>, <code>--development</code> Production mode copies statics/assets. Development mode symlinks statics/assets (default).</li> </ul> <h3 id="run"><code>run</code><a class="headerlink" href="#run" title="Permanent link">¶</a></h3> <p>Starts the local development server.</p> <p><strong>Options</strong></p> <ul> <li><code>-h</code>, <code>--host</code> TEXT The interface to bind to.</li> <li><code>-p</code>, <code>--port</code> INTEGER The port to bind to.</li> <li><code>-d</code>, <code>--debug</code> / <code>--no-debug</code> Debug mode enables Flask development mode, auto-reloading and more (default: enabled).</li> <li><code>-s</code>, <code>--services</code> / <code>-n</code>, <code>--no-services</code> Run dockerized services along with the instance or not.</li> </ul> <h2 id="assets-commands">Assets commands<a class="headerlink" href="#assets-commands" title="Permanent link">¶</a></h2> <p>Statics files and assets management commands.</p> <table> <thead> <tr> <th align="left">Command</th> <th align="left">Description</th> <th align="center">Supported</th> </tr> </thead> <tbody> <tr> <td align="left"><code>install</code></td> <td align="left">Install and link a React module.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>build</code></td> <td align="left">Build the current application static/assets files.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>watch</code></td> <td align="left">Statics and assets watch commands.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left"><code>watch-module</code></td> <td align="left">Watch a JavaScript/React module.</td> <td align="center">v0.19.0</td> </tr> </tbody> </table> <h3 id="assets-install"><strong><code>assets install</code></strong><a class="headerlink" href="#assets-install" title="Permanent link">¶</a></h3> <p>Install and link the JavaScript/React package specified by the path. For example:</p> <div class="highlight"><pre><span></span><code>invenio-cli<span class="w"> </span>assets<span class="w"> </span>install<span class="w"> </span>~/src/react-invenio-awesome/ </code></pre></div> <h3 id="assets-build"><strong><code>assets build</code></strong><a class="headerlink" href="#assets-build" title="Permanent link">¶</a></h3> <p>Build the current application's static/assets files.</p> <p>The default behavior of the command is to:</p> <ul> <li>Remove any existing</li> <li>Static files</li> <li>Webpack project</li> <li>Installed Node modules</li> <li>Collect<ol> <li>Static files</li> <li>Assets for the Webpack project</li> <li>InvenioRDM's instance statics and assets.</li> </ol> </li> <li>Install all Node modules specified by the Webpack project's <code>package.json</code>.</li> <li>Build the Webpack project.</li> </ul> <p>The command by default symlinks the static files and assets. This enables you to run the <code>watch</code>. If you build with <code>--production</code>, no symlinks are created, and the <code>watch</code> will not detect changes to your local development files.</p> <p><strong>Options</strong></p> <ul> <li><code>-n</code>, <code>--no-wipe</code> Do not remove existing assets.</li> <li><code>-p</code>, <code>--production</code> / <code>-d</code>, <code>--development</code> Production mode copies files. Development mode creates symbolic links, this allows to have real-time changes of the files. Defaults to <code>--development</code>.</li> </ul> <h3 id="assets-watch"><strong><code>assets watch</code></strong><a class="headerlink" href="#assets-watch" title="Permanent link">¶</a></h3> <p>Watches InvenioRDM's Webpack project for changes, and automatically rebuild the project if a file is changed.</p> <p>This command is useful for instance if you're editing the LESS or JavaScript files in your InvenioRDM instance.</p> <p>Note, if you run <code>assets build</code> with the <code>--production</code> option, then your local development files are not symlinked, and the <code>assets watch</code> command will not detect edits of your local development files.</p> <h3 id="assets-watch-module"><strong><code>assets watch-module</code></strong><a class="headerlink" href="#assets-watch-module" title="Permanent link">¶</a></h3> <p>Watch a JavaScript/React package for changes, and automatically rebuild the package.</p> <p>This command is useful if you are developing a React package (e.g. React-Searchkit).</p> <p>Before watching a React package, it must be installed and linked. This can be done with the <code>assets install</code> command. If the package is not already installed and linked you can use the <code>-l</code>/<code>--link</code> option.</p> <p><strong>Options</strong></p> <ul> <li><code>-l</code>/<code>--link</code> Install and link the JavaScript/React package before watching for changes.</li> </ul> <div class="admonition info"> <p class="admonition-title">Info</p> </div> <p>The command <code>assets watch-module</code> only rebuilds the JavaScript/React package into InvenioRDM's Webpack project. However, before you can see the changes, you must also rebuild InvenioRDM's Webpack project. Hence, you normally always use <code>assets watch-module</code> and <code>assets watch</code> in together:</p> <div class="highlight"><pre><span></span><code> invenio-cli assets watch-module --link ~/src/react-invenio-deposit invenio-cli assets watch </code></pre></div> <h2 id="container-commands">Container commands<a class="headerlink" href="#container-commands" title="Permanent link">¶</a></h2> <p>Containers management commands.</p> <p>The container management commands intends to bring up a full infrastructure environment for <strong>development purposes</strong> that looks similar to your production environment.</p> <table> <thead> <tr> <th align="left">Command</th> <th align="left">Description</th> <th align="center">Supported</th> </tr> </thead> <tbody> <tr> <td align="left">build</td> <td align="left">Build application and service images.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">destroy</td> <td align="left">Destroy containerized services and application.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">setup</td> <td align="left">Setup containerized services.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">start</td> <td align="left">Start containerized services and application.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">status</td> <td align="left">Checks if the services are up and running.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">stop</td> <td align="left">Stop containerized services and application.</td> <td align="center">v0.19.0</td> </tr> </tbody> </table> <p>The container management commands uses Docker-Compose behind the scenes, and specifically relies on the <code>docker-compose.full.yml</code> file.</p> <h3 id="containers-build"><strong><code>containers build</code></strong><a class="headerlink" href="#containers-build" title="Permanent link">¶</a></h3> <p>Build the application and service images.</p> <p><strong>Options</strong></p> <ul> <li><code>--pull</code> / <code>--no-pull</code> Download newer versions of the image. Defaults to pull.</li> <li><code>--cache</code> / <code>--no-cache</code> Use or do not use the cache when building images. Defaults to using the cache.</li> </ul> <h3 id="containers-destroy"><strong><code>containers destroy</code></strong><a class="headerlink" href="#containers-destroy" title="Permanent link">¶</a></h3> <p>Destroy the containerized services and application.</p> <h3 id="containers-setup"><strong><code>containers setup</code></strong><a class="headerlink" href="#containers-setup" title="Permanent link">¶</a></h3> <p>Setup containerized services.</p> <p>By default this command will build and boot all the containerized services (see <code>--stop-services</code> and <code>--no-services</code> options below to control this behaviour).</p> <p>This command:</p> <ul> <li>Initialize and create the database, Elasticsearch indexes, cache and message queue.</li> <li>Create an admin role.</li> <li>Create a default location for files.</li> </ul> <div class="admonition warning"> <p class="admonition-title">Error (psycopg2.OperationalError) FATAL: role "xxx" does not exist</p> <p>To avoid misleading error messages like this, make sure Postgres is not installed locally (and using port 5432) when setting up the database container.</p> </div> <p><strong>Options</strong></p> <ul> <li><code>-f</code>, <code>--force</code> Force recreation of database tables, Elasticsearch indexes and queues.</li> <li><code>-n</code>, <code>--no-demo-data</code> Disable the creation of demo data.</li> <li><code>--stop-services</code> Stop containers after setup.</li> <li><code>-s</code>, <code>--services</code> / <code>-n</code>, <code>--no-services</code> Boot up or not the containerized services. Defaults to boot them up.</li> </ul> <h3 id="containers-start"><strong><code>containers start</code></strong><a class="headerlink" href="#containers-start" title="Permanent link">¶</a></h3> <p>Start the containerized services and application.</p> <p><strong>Options</strong></p> <ul> <li><code>--lock</code> / <code>--skip-lock</code> Lock Python dependencies (defaults to <code>--skip-lock</code>).</li> <li><code>--build</code> / <code>--no-build</code> Build images (defaults to <code>--no-build</code>).</li> <li><code>--setup</code> / <code>--no-setup</code> Setup services (defaults to <code>--no-setup</code>).</li> <li><code>--demo-data</code> / <code>--no-demo-data</code> Create demo records if <code>--setup</code> is specified. (default=True).</li> <li><code>-s</code>, <code>--services</code> / <code>-n</code>, <code>--no-services</code> Boot up or not the containerized services. Defaults to booting them up.</li> </ul> <p>This command is intended to only start the containers needed to run a full containerised instance, for example:</p> <div class="highlight"><pre><span></span><code>invenio-cli<span class="w"> </span>containers<span class="w"> </span>start </code></pre></div> <p>However, for demo/preview purposes it allows to perform a full build and setup. For instance, if you have a freshly initialized instance you can build and boot it with:</p> <div class="highlight"><pre><span></span><code>invenio-cli<span class="w"> </span>containers<span class="w"> </span>start<span class="w"> </span>--lock<span class="w"> </span>--build<span class="w"> </span>--setup </code></pre></div> <p>Note, that <code>--lock</code> is done locally on your machine, and not inside the containers.</p> <h3 id="containers-status"><strong><code>containers status</code></strong><a class="headerlink" href="#containers-status" title="Permanent link">¶</a></h3> <p>Checks if the services are up and running.</p> <div class="admonition info"> <p class="admonition-title">Supported services</p> </div> <p>currently only ES, DB (postgresql/mysql) and redis are supported.</p> <p><strong>Options</strong></p> <ul> <li><code>-v</code>, <code>--verbose</code> Verbose mode will show all logs in the console.</li> </ul> <h3 id="containers-stop"><strong><code>containers stop</code></strong><a class="headerlink" href="#containers-stop" title="Permanent link">¶</a></h3> <p>Stop containerized services and application.</p> <h2 id="packages-commands">Packages commands<a class="headerlink" href="#packages-commands" title="Permanent link">¶</a></h2> <p>Commands for Python package management.</p> <table> <thead> <tr> <th align="left">Command</th> <th align="left">Description</th> <th align="center">Supported</th> </tr> </thead> <tbody> <tr> <td align="left">install</td> <td align="left">Install one or a list of Python packages in the local environment.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">lock</td> <td align="left">Lock Python dependencies.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">outdated</td> <td align="left">Show outdated Python dependencies.</td> <td align="center">-</td> </tr> <tr> <td align="left">update</td> <td align="left">Update a single Python python package.</td> <td align="center">-</td> </tr> </tbody> </table> <h3 id="packages-install"><strong><code>packages install</code></strong><a class="headerlink" href="#packages-install" title="Permanent link">¶</a></h3> <p>Install one or more Python packages as editable packages in the local Python virtual environment.</p> <p>The primary intended purpose of this command is for developers to install a development version of an Invenio module they are working on.</p> <div class="admonition warning"> <p class="admonition-title">Don't skip assets rebuild</p> <p>The command by default rebuilds the assets afterwards (same as running <code>assets build</code>). If you skip rebuilding the assets, you will likely have outdated files in InvenioRDM's Webpack project, and you are very likely going to have problems.</p> </div> <p><strong>Options</strong></p> <ul> <li><code>-s</code>, <code>--skip-build</code> Do not rebuild the assets.</li> </ul> <h3 id="packages-lock"><strong><code>packages lock</code></strong><a class="headerlink" href="#packages-lock" title="Permanent link">¶</a></h3> <p>Lock Python dependencies.</p> <p>This creates a <code>Pipfile.lock</code> in your instance with hashes and versions of all Python packages. This ensures you have reproducible builds, and that you don't risk having new patch-level versions of third-party Python packages break your build.</p> <p><strong>Options</strong></p> <ul> <li><code>--pre</code> Allows the installation of alpha releases.</li> <li><code>--dev</code> Include development devepencies.</li> </ul> <h3 id="packages-outdated"><strong><code>packages outdated</code></strong><a class="headerlink" href="#packages-outdated" title="Permanent link">¶</a></h3> <div class="admonition error"> <p class="admonition-title">Not yet supported</p> </div> <h3 id="packages-update"><strong><code>packages update</code></strong><a class="headerlink" href="#packages-update" title="Permanent link">¶</a></h3> <div class="admonition error"> <p class="admonition-title">Not yet supported</p> </div> <h2 id="services-commands">Services commands<a class="headerlink" href="#services-commands" title="Permanent link">¶</a></h2> <p>Commands for services management.</p> <p>The services management commands intends to bring up a minimal infrastructure environment for <strong>development purposes</strong>.</p> <table> <thead> <tr> <th align="left">Command</th> <th align="left">Description</th> <th align="center">Supported</th> </tr> </thead> <tbody> <tr> <td align="left">destroy</td> <td align="left">Destroy development services.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">setup</td> <td align="left">Setup local services.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">start</td> <td align="left">Start local services.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">status</td> <td align="left">Checks if the services are up and running.</td> <td align="center">v0.19.0</td> </tr> <tr> <td align="left">stop</td> <td align="left">Stop local services.</td> <td align="center">v0.19.0</td> </tr> </tbody> </table> <p>The services management commands uses Docker-Compose behind the scenes, and specifically relies on the <code>docker-compose.yml</code> file. The <code>containers</code> commands instead relies on the <code>docker-compose.full.yml</code> file.</p> <h3 id="services-destroy"><strong><code>services destroy</code></strong><a class="headerlink" href="#services-destroy" title="Permanent link">¶</a></h3> <p>Destroy development services and any data in them.</p> <h3 id="services-setup"><strong><code>services setup</code></strong><a class="headerlink" href="#services-setup" title="Permanent link">¶</a></h3> <p>Setup containerized services.</p> <p>By default this command will build and boot all the containerized services (see <code>--stop-services</code> and <code>--no-services</code> options below to control this behaviour).</p> <p><strong>Options</strong></p> <ul> <li><code>-f</code>, <code>--force</code> Force recreation of database tables, Elasticsearch indices and queues.</li> <li><code>-n</code>, <code>--no-demo-data</code> Disable the creation of demo data.</li> <li><code>--stop-services</code> Stop containers after setup.</li> <li><code>-s</code>, <code>--services</code> / <code>-n</code>, <code>--no-services</code> Boot up or not the containerized services. Defaults to boot them up.</li> </ul> <h3 id="services-start"><strong><code>services start</code></strong><a class="headerlink" href="#services-start" title="Permanent link">¶</a></h3> <p>Start the containerized services.</p> <h3 id="services-status"><strong><code>services status</code></strong><a class="headerlink" href="#services-status" title="Permanent link">¶</a></h3> <p>Checks if the services are up and running.</p> <div class="admonition info"> <p class="admonition-title">Supported services</p> </div> <p>Currently only Elasticsearch, databases (PostgreSQL/MySQL) and Redis are supported.</p> <p><strong>Options</strong></p> <ul> <li><code>-v</code>, <code>--verbose</code> Verbose mode will show all logs in the console.</li> </ul> <h3 id="services-stop"><strong><code>services stop</code></strong><a class="headerlink" href="#services-stop" title="Permanent link">¶</a></h3> <p>Stop containerized services.</p> <p>The command does not destroy any data in the services.</p> <h2 id="shell-commands">Shell commands<a class="headerlink" href="#shell-commands" title="Permanent link">¶</a></h2> <h3 id="shell"><strong><code>shell</code></strong><a class="headerlink" href="#shell" title="Permanent link">¶</a></h3> <p>Starts a new shell (bash/zsh/...) and activates the Python virtual environment.</p> <h3 id="pyshell"><strong><code>pyshell</code></strong><a class="headerlink" href="#pyshell" title="Permanent link">¶</a></h3> <p>Starts an interactive Python interpreter with the InvenioRDM application loaded.</p> <p><strong>Options</strong></p> <p><code>-d</code>, <code>--debug</code> / <code>--no-debug</code> Debug mode enables Flask development mode (default: disabled).</p> <h2 id="translations-commands">Translations commands<a class="headerlink" href="#translations-commands" title="Permanent link">¶</a></h2> <p>Translations (i18n) message catalogs management.</p> <table> <thead> <tr> <th align="left">Command</th> <th align="left">Description</th> <th align="center">Supported</th> </tr> </thead> <tbody> <tr> <td align="left"><code>extract</code></td> <td align="left">Extract strings from code and config</td> <td align="center">v1.0.12</td> </tr> <tr> <td align="left"><code>init</code></td> <td align="left">Initialize a specific locale catalog</td> <td align="center">v1.0.12</td> </tr> <tr> <td align="left"><code>update</code></td> <td align="left">Update message catalogs</td> <td align="center">v1.0.12</td> </tr> <tr> <td align="left"><code>compile</code></td> <td align="left">Compile message catalogs</td> <td align="center">v1.0.12</td> </tr> </tbody> </table> <h3 id="translations-extract"><strong><code>translations extract</code></strong><a class="headerlink" href="#translations-extract" title="Permanent link">¶</a></h3> <p>Extract strings from code (generate <code>.pot</code> files).</p> <p><strong>Options</strong></p> <ul> <li><code>-b</code>, <code>--babel-ini</code> Relative path to babel.ini (including filename).</li> </ul> <h3 id="translations-init"><strong><code>translations init</code></strong><a class="headerlink" href="#translations-init" title="Permanent link">¶</a></h3> <p>Initialize a specific locale catalog (generate <code>.po</code> files).</p> <p><strong>Options</strong></p> <ul> <li><code>-l</code>, <code>--locale</code> Locale to initialize.</li> </ul> <h3 id="translations-update"><strong><code>translations update</code></strong><a class="headerlink" href="#translations-update" title="Permanent link">¶</a></h3> <p>Update message catalogs.</p> <h3 id="translations-compile"><strong><code>translations compile</code></strong><a class="headerlink" href="#translations-compile" title="Permanent link">¶</a></h3> <p>Compile message catalogs (generate <code>.mo</code> files).</p> <p><strong>Options</strong></p> <ul> <li><code>-f</code>, <code>--fuzzy</code> Allow fuzzy translations (not revised).</li> </ul> <h2 id="upgrade-command">Upgrade command<a class="headerlink" href="#upgrade-command" title="Permanent link">¶</a></h2> <h3 id="upgrade"><strong><code>upgrade</code></strong><a class="headerlink" href="#upgrade" title="Permanent link">¶</a></h3> <div class="admonition error"> <p class="admonition-title">Not yet supported</p> </div> <h2 id="invenio-rdm-commands">Invenio RDM commands<a class="headerlink" href="#invenio-rdm-commands" title="Permanent link">¶</a></h2> <h3 id="rdm"><strong><code>rdm</code></strong><a class="headerlink" href="#rdm" title="Permanent link">¶</a></h3> <p>Invenio app rdm commands.</p> <h3 id="rdm-pages"><strong><code>rdm pages</code></strong><a class="headerlink" href="#rdm-pages" title="Permanent link">¶</a></h3> <p>see <a href="../../customize/static_pages/">Static pages</a>.</p> <h3 id="rdm-pages-create"><strong><code>rdm pages create</code></strong><a class="headerlink" href="#rdm-pages-create" title="Permanent link">¶</a></h3> <p><strong>Options</strong></p> <ul> <li><code>-f</code>, <code>--force</code> Creates static pages.</li> </ul> <h3 id="rdm-fixtures"><strong><code>rdm fixtures</code></strong><a class="headerlink" href="#rdm-fixtures" title="Permanent link">¶</a></h3> <p>Create the fixtures.</p> <h3 id="rdm-rebuild-all-indices"><strong><code>rdm rebuild-all-indices</code></strong><a class="headerlink" href="#rdm-rebuild-all-indices" title="Permanent link">¶</a></h3> <p>Reindex all services with optional selecting and ordering.</p> <p><strong>Options</strong></p> <ul> <li><code>-o</code>, <code>--order</code> Comma-separated list of services to reindex in the specified order. If not provided, all services will be reindexed. e.g.:</li> </ul> <div class="highlight"><pre><span></span><code>invenio<span class="w"> </span>rdm<span class="w"> </span>rebuild-all-indices<span class="w"> </span>-o<span class="w"> </span>users,communities,records,requests,request_events </code></pre></div> <p>if you don't specify services, The following services will be reindexed:</p> <p><code>users, groups, domains, communities, members, records, record-media-files, affiliations, awards, funders, names, subjects, vocabularies, requests, request_events, oaipmh-server</code></p> <p>Note that the users, groups, and members use bulk indexing and rely on celery running. They will not be reindexed if celery is not running.</p> <p>This command does not impact usage statistics indexes. You need to manually restore statistics indexes <a href="../../develop/howtos/backup_search_indices/">from a backup</a>.</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer" > <a href="../" class="md-footer__link md-footer__link--prev" aria-label="Previous: Overview"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </div> <div class="md-footer__title"> <span class="md-footer__direction"> Previous </span> <div class="md-ellipsis"> Overview </div> </div> </a> <a href="../configuration/" class="md-footer__link md-footer__link--next" aria-label="Next: Configuration"> <div class="md-footer__title"> <span class="md-footer__direction"> Next </span> <div class="md-ellipsis"> Configuration </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> <div class="md-copyright__highlight"> Copyright © 2019-2024 CERN, Northwestern University and contributors. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> <div class="md-social"> <a href="https://github.com/inveniosoftware" target="_blank" rel="noopener" title="github.com" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.footer", "content.code.copy"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src="../../assets/javascripts/bundle.525ec568.min.js"></script> </body> </html>