Skip to content

Commit

Permalink
docs(feature-manager): update docs to reflect FeatureManager removal (#…
Browse files Browse the repository at this point in the history
…2145)

* docs: update roadmap

* docs: move banner docs to DEPLOYMENT_SETUP

* docs: remove feature manager dependencies from DEPLOYMENT_SETUP
  • Loading branch information
mantariksh authored Jun 11, 2021
1 parent d087588 commit 498e4b0
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 42 deletions.
35 changes: 6 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ Notable features include:

The current product roadmap includes:

- (in progress) Migrating backend code from JavaScript to [TypeScript](https://www.typescriptlang.org/)
- (in progress) Refactoring backend code to use [Domain-driven Design](https://en.wikipedia.org/wiki/Domain-driven_design)
- (in progress) Migrating backend tests from [Jasmine](https://jasmine.github.io/) to [Jest](https://jestjs.io/) and expanding unit vs integration tests
- (yet to start) Support for webhooks attachments
- (yet to start) Frontend rewrite from [AngularJS](https://angularjs.org/) to [React](https://reactjs.org/)
- (in progress) Frontend rewrite from [AngularJS](https://angularjs.org/) to [React](https://reactjs.org/)
- Enabling payments on forms
- Electronic signatures
- Notifications to form admins for Storage mode submissions
- Integration with vault.gov.sg

## Local Development (Docker)

Expand Down Expand Up @@ -168,29 +168,6 @@ An overview of the architecture can be found [here](docs/ARCHITECTURE.md).

Scripts for common tasks in MongoDB can be found [here](docs/MONGODB.md).

## Maintenance Banners

Banners providing form-fillers with useful information can shown at the top of
forms and configured using the environment variables below.

| Environment Variable | Value will be shown as a banner at the bottom of |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ADMIN_BANNER_CONTENT` | private form routes such as `/forms` and `/{formId}/admin` |
| `SITE_BANNER_CONTENT` | both private routes that `ADMIN_BANNER_CONTENT` covers **and** public form routes that `IS_GENERAL_MAINTENANCE` covers. This supersedes **ALL** other banner environment variables |
| `IS_GENERAL_MAINTENANCE` | all public forms |
| `IS_SP_MAINTENANCE` | all public **SingPass-enabled** forms |
| `IS_CP_MAINTENANCE` | all public **CorpPass-enabled** forms |

> Note that if more than one of the above environment variables are defined,
> only one environment variable will be used to display the given values.
>
> For public form routes, only one environment variable will be read in the
> following precedence: `SITE_BANNER_CONTENT` > `IS_GENERAL_MAINTENANCE` >
> `IS_SP_MAINTENANCE` > `IS_CP_MAINTENANCE`
>
> For private form routes, only one environment variable will be read in the
> following precendence: `SITE_BANNER_CONTENT` > `ADMIN_BANNER_CONTENT`
## Contributing

We welcome all contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas to code open sourced by the Government Technology Agency of Singapore. Contributors should read [CONTRIBUTING.md](CONTRIBUTING.md) and will also be asked to sign a Contributor License Agreement (CLA) in order to ensure that everybody is free to use their contributions.
Expand All @@ -211,4 +188,4 @@ Contributions have also been made by:
[@zioul123](https://github.com/zioul123)
[@JoelWee](https://github.com/JoelWee)
[@limli](https://github.com/limli)
[@tankevan](https://github.com/tankevan)
[@tankevan](https://github.com/tankevan)
41 changes: 28 additions & 13 deletions docs/DEPLOYMENT_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,23 @@ SITE_BANNER_CONTENT=hello:This is an invalid banner type, and the full text will
| :----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SITE_BANNER_CONTENT` | If set, displays a banner message on both private routes that `ADMIN_BANNER_CONTENT` covers **and** public form routes that `IS_GENERAL_MAINTENANCE` covers. Overrides all other banner environment variables |
| `ADMIN_BANNER_CONTENT` | If set, displays a banner message on private admin routes such as the form list page as well as form builder pages. |
| `IS_LOGIN_BANNER` | If set, displays a banner message on the login page |
| `IS_LOGIN_BANNER` | If set, displays a banner message on the login page. |
| `IS_GENERAL_MAINTENANCE` | If set, displays a banner message on all forms. Overrides `IS_SP_MAINTENANCE` and `IS_CP_MAINTENANCE`. |
| `IS_SP_MAINTENANCE` | all public **SingPass-enabled** forms |
| `IS_CP_MAINTENANCE` | all public **CorpPass-enabled** forms |

> Note that if more than one of the above environment variables are defined,
> only one environment variable will be used to display the given values.
>
> For public form routes, only one environment variable will be read in the
> following precedence: `SITE_BANNER_CONTENT` > `IS_GENERAL_MAINTENANCE` >
> `IS_SP_MAINTENANCE` > `IS_CP_MAINTENANCE`
>
> For private form routes, only one environment variable will be read in the
> following precendence: `SITE_BANNER_CONTENT` > `ADMIN_BANNER_CONTENT`
>
> For the login page, only one environment variable will be read in the
> following precendence: `SITE_BANNER_CONTENT` > `IS_LOGIN_BANNER`
#### AWS services

Expand Down Expand Up @@ -222,11 +237,11 @@ The app applies per-minute, per-IP rate limits at specific API endpoints as a se

### Additional Features

The app supports a number of additional features like Captcha protection, Sentry reporting and Google Analytics. Each of these features requires specific environment variables which are detailed below. To deploy a bare bones application without these additional features, one can safely exclude the respective environment variables without any extra configuration.
The app contains a number of additional features like Captcha protection, Sentry reporting and Google Analytics. Each of these features requires specific environment variables which are detailed below.

#### Google Captcha

If this feature is enabled, forms with be protected with [recaptcha](https://www.google.com/recaptcha/about/), preventing submissions from being made by bots.
Forms can be protected with [recaptcha](https://www.google.com/recaptcha/about/), preventing submissions from being made by bots.

| Variable | Description |
| :---------------------- | -------------------------- |
Expand All @@ -235,15 +250,15 @@ If this feature is enabled, forms with be protected with [recaptcha](https://www

#### Google Analytics

If this feature is enabled, [google analytics](https://analytics.google.com/analytics/web) will be used to track website traffic. Examples of events include number of visits to various forms, number of successful submissions and number of submission failures.
[Google Analytics](https://analytics.google.com/analytics/web) is used to track website traffic. Examples of events include number of visits to various forms, number of successful submissions and number of submission failures.

| Variable | Description |
| :--------------- | ----------------------------- |
| `GA_TRACKING_ID` | Google Analytics tracking ID. |

#### Sentry.io

If this feature is enabled, client-side error events will be piped to [sentry.io](https://sentry.io/welcome/) for monitoring purposes.
Client-side error events are piped to [sentry.io](https://sentry.io/welcome/) for monitoring purposes.

| Variable | Description |
| :------------------ | ----------------------------------------------------------------------------------------------------- |
Expand All @@ -253,9 +268,9 @@ If this feature is enabled, client-side error events will be piped to [sentry.io

#### SMS with Twilio

If this feature is enabled, the Mobile Number field will support form-fillers verifying their mobile numbers via a One-Time-Pin sent to their mobile phones and will also support an SMS confirmation of successful submission being sent out to their said mobile numbers. All messages are sent using [twilio](https://www.twilio.com/) messaging APIs.
The Mobile Number field supports form-fillers verifying their mobile numbers via a One-Time-Pin sent to their mobile phones. All messages are sent using [Twilio](https://www.twilio.com/) messaging APIs.

Note that verifiying mobile numbers also requires [Verified Emails/SMSes](#verified-emailssmses) to be enabled.
Note that verifying mobile numbers also requires the environment variables for [verified Emails/SMSes](#verified-emailssmses).

| Variable | Description |
| :----------------------------- | ------------------------ |
Expand All @@ -266,8 +281,8 @@ Note that verifiying mobile numbers also requires [Verified Emails/SMSes](#verif

#### SingPass/CorpPass and MyInfo

If this feature is enabled, forms will support authentication via [SingPass](https://www.singpass.gov.sg/singpass/common/aboutus) (Singapore's Digital Identity for Citizens) and
[CorpPass](https://www.corppass.gov.sg/corppass/common/aboutus) (Singapore's Digital Identity for Organizations). Forms will also support pre-filling using [MyInfo](https://www.singpass.gov.sg/myinfo/intro) after a citizen has successfully authenticated using SingPass.
Submissions can be authenticated via [SingPass](https://www.singpass.gov.sg/singpass/common/aboutus) (Singapore's Digital Identity for Citizens) and
[CorpPass](https://www.corppass.gov.sg/corppass/common/aboutus) (Singapore's Digital Identity for Organizations). Forms can also be pre-filled using [MyInfo](https://www.singpass.gov.sg/myinfo/intro) after a citizen has successfully authenticated using SingPass.

Note that MyInfo is currently not supported for storage mode forms and enabling SingPass/CorpPass on storage mode forms also requires [SingPass/CorpPass for Storage Mode](#webhooks-and-singpasscorppass-for-storage-mode) to be enabled.

Expand Down Expand Up @@ -302,19 +317,19 @@ Note that MyInfo is currently not supported for storage mode forms and enabling

#### Verified Emails/SMSes

If this feature is enabled, the Mobile Number field will support form-fillers verifying their mobile numbers via a One-Time-Pin sent to their mobile phones and the Email field will support form-fillers verifying their email addresses via a One-Time-Pin sent to their email boxes.
The Mobile Number and Email fields support form-fillers verifying their contact details via a One-Time-Pin.

Note that verified SMSes also requires [SMS with Twilio](#sms-with-twilio) to be enabled.
Note that verified SMSes also require [SMS with Twilio](#sms-with-twilio) to be enabled.

| Variable | Description |
| :------------------------ | -------------------------------------------------------------- |
| `VERIFICATION_SECRET_KEY` | The secret key for signing verified responses (email, mobile). |

#### Webhooks and SingPass/CorpPass for Storage Mode

If this feature is enabled, storage mode forms will support posting encrypted form submissions to a REST API supplied by the form creator. The [FormSG SDK](https://github.com/opengovsg/formsg-javascript-sdk) can then be used to verify the signed posted data and decrypt the encrypted submission contained within.
Form admins can configure their Storage mode forms to POST encrypted form submissions to a REST API supplied by the form creator. The [FormSG SDK](https://github.com/opengovsg/formsg-javascript-sdk) can then be used to verify the signed posted data and decrypt the encrypted submission contained within.

If this feature is enabled, storage mode forms will also support authentication via SingPass or CorpPass. Note that this also requires [SingPass/CorpPass and MyInfo](#singpasscorppass-and-myinfo) to be enabled.
These environment variables also allow Storage mode forms to support authentication via SingPass or CorpPass. Note that this also requires [SingPass/CorpPass and MyInfo](#singpasscorppass-and-myinfo) to be enabled.

| Variable | Description |
| :------------------- | --------------------------------------------------------------------- |
Expand Down

0 comments on commit 498e4b0

Please sign in to comment.