From 0fcf7de5464ca45afcce2bf9f40d8caed3a272a7 Mon Sep 17 00:00:00 2001 From: brandonlenz Date: Thu, 22 Jun 2023 10:21:47 -0400 Subject: [PATCH] First Draft ADR --- .../decisions/0021-django-admin.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 docs/architecture/decisions/0021-django-admin.md diff --git a/docs/architecture/decisions/0021-django-admin.md b/docs/architecture/decisions/0021-django-admin.md new file mode 100644 index 000000000..20dc747cb --- /dev/null +++ b/docs/architecture/decisions/0021-django-admin.md @@ -0,0 +1,40 @@ +# 21. Use Django Admin for Application Management + +Date: 2023-06-22 + +## Status + +Accepted + +## Context + +CISA needs a way to perform administrative actions to manage the new get.gov application as well as the .gov domain +application requests submitted. Analysts need to be able to view, review, and approve domain applications. Other +dashboard views, reports, searches (with filters and sorting) are also highly desired. + +## Decision + +Use Django's [Admin](https://docs.djangoproject.com/en/4.2/ref/contrib/admin/) site for administrative actions. Django +Admin gives administrators all the powers we anticipate needing (and more), with relatively little overhead on the +development team. + +## Consequences + +Django admin provides the team with a _huge_ head start on the creation of an administrator portal. + +While Django Admin is highly customizable, development will be constrained by what is possible within Django Admin. + +We anticipate that this will, overall, speed up the time to MVP compared to building a completely custom solution. + +Django Admin offers omnipotence for administrators out of the box, with direct access to database objects. This includes +the ability to put the application and its data in an erroneous state, based on otherwise normal business rules/logic. + +In contrast to building an admin interface from scratch where development activities would predominantly +involve _building up_, leveraging Django Admin will require carefully _pairing back_ the functionalities available to +users such as analysts. + +While we anticipate that Django Admin will meet (or even exceed) the user needs that we are aware of today, it is still +an open question whether Django Admin will be the long-term administrator tool of choice. A pivot away from Django Admin +in the future would of course mean starting from scratch at a later date, and potentially juggling two separate admin +portals for a period of time while a custom solution is incrementally developed. This would result in an overall +_increase_ to the total amount of development time invested in the administrator portal.