Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✍️ Initial draft of tagging standards #25

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/technical-standards/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Technical standards

These technical standards are the baseline operating requirements for systems and services in Hackney.
4 changes: 4 additions & 0 deletions docs/technical-standards/Reference/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"collapsible": false,
"collapsed": false,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
sidebar_position: 1
---
# Hosting standards

Hosting standards apply to everything we host at Hackney, whether it's built in-house, developed externally, or an off-the-shelf product. If we're hosting it in one of our cloud platforms, e.g. AWS, these standards apply
50 changes: 50 additions & 0 deletions docs/technical-standards/Reference/hosting-standards/tagging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Tagging

We will tag all AWS objects, so we know they have a purpose and have a defined owner to manage cost, maintenance and support.

## What must be in place

1. All objects in our cloud hosting providers (primarily AWS) must be tagged in line with the requirements set out below.

## Monitoring

The user creating the object will be notified when an object is untagged with increasing urgency.

## Resolution/Escalation if the baseline isn't met

1. Creation of untagged objects will be prevented by technical controls where possible.
2. Newly created untagged objects will be forcefully and automatically shutdown/disabled if they remain untagged for 7 calendar days.
3. Existing untagged objects will not be editable until the mandatory tags have been added.

## Tags to use

To ensure we can consistently search for, and report on, the tags we use, you should use the following tags. In all cases, only use acronyms if you’re confident that someone from another part of the council would understand them. If in doubt, avoid acronyms and use the full term.

### Mandatory tags

- `Application`: The full name of the application or service. This should match the name used in the Service Catalogue, e.g. `Repairs Hub`, `Common Fate`.
- `TeamEmail`: The email address of the team responsible for the operation of the service. Must be a valid email group, not an individual.
- `Environment`: The name of the environment, must be one of `dev`, `stg`, `prod` or `mgmt`[^environment-tags-source].

### Optional tags

- `AutomationBuildUrl`: URL of the automation build, must be a valid URL.
- `BackupPolicy`: The backup policy to apply to the resource. If present must be one of `Dev`, `Stg`, `Preprod`, `Prod`, `Mgmt`.
- `Confidentiality`: Data confidentiality of the infrastructure. Only applicable to infrastructure which holds data, e.g. EC2, RDS, EBS, DynamoDB, Glue, and S3. Must be one of `Internal`, `Restricted`, or `Public`[^confidentiality-tags-source].
weekend_shutdown
ooh_shutdown


### FIXME(remove) Tags we're no longer using

- `AutomationTool`: The tool used for Infrastructure as Code, e.g. `Terraform` or `Serverless Framework`.
- `Department` (maybe useful, it's a fixed list)
- `Phase`
- `Stack`
- `Patch Group`
- `Project`
- `OOOShutdown` (has been superceded)
- `Team` (replaced by TeamEmail)

[^confidentiality-tags-source]: https://github.com/LBHackney-IT/aws-tags-lbh/blob/main/variables.tf#L83
[^environment-tags-source]: https://github.com/LBHackney-IT/aws-tags-lbh/blob/main/variables.tf#L150
6 changes: 6 additions & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ const config = {
position: 'left',
label: 'Ways of working',
},
{
type: 'docSidebar',
sidebarId: 'technicalStandards',
position: 'left',
label: 'Technical standards',
},
{
type: 'docSidebar',
sidebarId: 'architecturePillars',
Expand Down
1 change: 1 addition & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const sidebars = {
frontendDevelopment: [{type: 'autogenerated', dirName: 'frontend-development'}],
apiSpecifications: [{type: 'autogenerated', dirName: 'api-specifications'}],
productPlaybook: [{type: 'autogenerated', dirName: 'Product-Playbook'}],
technicalStandards: [{type: 'autogenerated', dirName: 'technical-standards'}],
};

export default sidebars;
Loading