This directory contains the engineering practices that are observed at the Open Government Products division of the Singapore Government.
This repository is intended to be a living, breathing document that evolves as the organisation grows. All OGP engineers are welcome to make contributions or propose changes, by filing a pull request using the Request For Comment (RFC) template available in this repository.
Practices are currently in place for the following areas:
- Laptop policy
- Google Groups
- Passwords and credentials
- IDE
- Branching
- Pre-Commit Checks
- Linting
- Secrets
- Checks during Continuous Integration
- Secrets
- Security
- Code Review Processes
-
Backend
- RESTful API routing organisation
- Using Object Relational Mappers (ORMs)
-
Frontend
- Template Screens
- State Management
-
Testing
- Unit
- Integration
- End-to-End
-
Libraries and tools
- @opengovsg/mockpass - mock SingPass/CorpPass/MyInfo server for dev purposes
- @opengovsg/sgid-client - official TypeScript/JavaScript SDK for sgID integration
- @opengovsg/myinfo-gov-client - type-safe TypeScript/JavaScript SDK for MyInfo integration
- @opengovsg/formsg-sdk - official FormSG webhook SDK
- Using CI/CD
- Release practices
- Deploying to AWS, Step-by-Step
- Organising and Naming Environments
- Hosting
- Scaling
- Infrastructure guide
- Domain Name Service (DNS)
- Content Delivery Service (CDN)
- Databases
- Load Balancing
- Backup guide
- Production guide
- Monitoring and alerting
- Incident response and on-calls
- Lighthouse for QC'ing Web Pages
- ts-template - Web application template
- ts-job-template - Scheduled batch jobs that execute on AWS Elastic Container Service
- Zendesk
See here.