-
Notifications
You must be signed in to change notification settings - Fork 10
Decision: Repository admin tool
Thing | Info |
---|---|
Relevant features | Policy repository, content authoring |
Date started | 2023-08-03 |
Date finished | 2023-08-26 |
Decision status | Done |
Summary of outcome | Sticking with Django Admin |
We need to enable team members and staff to upload and manage internal files, with metadata, that show up on eRegs for authenticated users. We wanted to figure out the best, shortest path to getting something up and running.
To support this decision, we made a lot of notes on scratch paper here. We reviewed most of the options on this Django Packages File Managers list and investigated the two most promising options.
Are there any existing services, plugins, or components – compatible with Django – that we could run on AWS to provide an in-house file management system for our users?
If there is no option to integrate with anything other than AWS, what’s our best path to production?
- You need to be authenticated to use this tool. Everyone with authentication will have access to all internal documents.
- Most files are between 1-10 MB. We could set a max of 100 MB.
- Our scope is likely between 1000 and 10,000 files.
- All documents are the same level of sensitivity – non-public but not PII or PHI.
- People need a way to upload files and write metadata for those files.
- There is minimal support for finding files in this editor interface. People will do research – they will find files – using the eRegs frontend website.
- Items may have a description, internal notes, date, subjects, regulation locations, document type, and eventually statute locations.
We were told this project can't use Box for file storage or content management. Otherwise we would want to use the Box API to fetch document information and display it on authenticated eRegs pages, because Box is already ATOed and available to all staff.
Pros:
- Good documentation, active open source community
- Looks nice
- Uses Django’s templating language and contains all of the same features and functionality, while also adding a few
templatetags
of its own
Cons:
- Editing interface is not flexible or customizable enough for our specific needs
- Big, resource-intensive, hard to deploy on a Lambda
Pros:
- Good documentation, actively maintained
- Sounded like it had some helpful features
Cons:
- We don't want a folder structure for these files
- Too clunky, not very usable
Pros:
- Our Django admin interface is already pretty robust for editing public documents.
- We can re-use our existing skills and code. We know how to build new features in this interface.
- We can incrementally deliver improvements, since we're building on something that's already in production.
- We can customize to our hearts' content.
Cons:
- No shortcuts. Just gotta build it.
How to support a nice multi-file upload experience?
We need to focus our efforts. What should we use?
We decided on "none of the above" - to build on our existing Django Admin panel without adding pre-made plugins. We did our best to avoid reinventing the wheel - to save time and resources - but it turns out we have a pretty good set of custom wheels already. We can add another one reasonably efficiently.
We learned a lot about our file management needs in the process of doing this research.
Please note that all pages on this GitHub wiki are draft working documents, not complete or polished.
Our software team puts non-sensitive technical documentation on this wiki to help us maintain a shared understanding of our work, including what we've done and why. As an open source project, this documentation is public in case anything in here is helpful to other teams, including anyone who may be interested in reusing our code for other projects.
For context, see the HHS Open Source Software plan (2016) and CMS Technical Reference Architecture section about Open Source Software, including Business Rule BR-OSS-13: "CMS-Released OSS Code Must Include Documentation Accessible to the Open Source Community".
For CMS staff and contractors: internal documentation on Enterprise Confluence (requires login).
- Federal policy structured data options
- Regulations
- Resources
- Statute
- Citation formats
- Export data
- Site homepage
- Content authoring
- Search
- Timeline
- Not built
- 2021
- Reg content sources
- Default content view
- System last updated behavior
- Paragraph indenting
- Content authoring workflow
- Browser support
- Focus in left nav submenu
- Multiple content views
- Content review workflow
- Wayfinding while reading content
- Display of rules and NPRMs in sidebar
- Empty states for supplemental content
- 2022
- 2023
- 2024
- Medicaid and CHIP regulations user experience
- Initial pilot research outline
- Comparative analysis
- Statute research
- Usability study SOP
- 2021
- 2022
- 2023-2024: 🔒 Dovetail (requires login)
- 🔒 Overview (requires login)
- Authentication and authorization
- Frontend caching
- Validation checklist
- Search
- Security tools
- Tests and linting
- Archive