Developing KCWorks¶ KCWorks Architecture InvenioRDM’s Layered Architecture InvenioRDM Services InvenioRDM Record Objects Development Standards Upstream InvenioRDM standards Code Style Accessibility UI/UX Source Control and Versioning Version Numbering Version Control Development Workflow Starting the KCWorks instance Updating the running KCWorks instance with development changes Digging deeper Updating an Instance with Upstream Changes Automated Testing Python tests Javascript tests Ghost Inspector tests How Tos Adding a new custom extension to the KCWorks InvenioRDM instance Working with User Data and Profiles Creating and Modifying Records in General Reading Deposit Records (RDMRecordService) Creating and Modifying a Deposit Record (RDMRecordService) Custom Record Service Components Menus (Flask-Menu) Accessing the menu Registering items in KCWorks KCWorks community header pipeline MenuNode reference Modifying items after registration Mental model Publishing admin docs to the knowledge base Setup Usage Which sections are synced Configuring sources Further reading Build Processes Building the KCWorks Container Building the Documentation Building JS, CSS, and Other Static Assets Stats and Analytics References Stats indices Retrieving stats Recording events Stats collection configuration Stat calculation for records Stats task scheduling API query configuration API endpoint permissions Other kinds of stats I18n Translations KCWorks Infrastructure