Establish mechanism to store Approval Requests for two-person approvals
Problem to solve
To provide two-person approvals for compliance-minded organizations, we need to create an underlying mechanism to store the requests for changes. Currently, there's no system to log these requests and provide an opportunity for an authorized user to approve of those requests.
Intended users
User experience goal
A compliance-minded organization should be able to log requests to change specific project settings.
Proposal
graph LR
Node1[Setting changed] --> Node2[Approval Request table]
- Establish mechanism to store
Approval Requests
- Intercept project setting change service (I secretly wish there was a domain event)
- Construct model for
Approval Request
(domain model and DB table)
Proposed DB schema
CREATE TABLE public.approval_requests (
id INTEGER NOT NULL,
requestor_id INTEGER NOT NULL,
namespace_id INTEGER NOT NULL,
project_id INTEGER NOT NULL,
setting_name VARCHAR NOT NULL,
status INTEGER NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL,
);
-- primary key: id
-- plus indexes as needed