Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bbc/digital-paper-edit-infrastructure
Work in progress - BBC News Labs digital paper edit project - AWS infrastructure
https://github.com/bbc/digital-paper-edit-infrastructure
digital-paper-edit news-labs newslabs
Last synced: 10 days ago
JSON representation
Work in progress - BBC News Labs digital paper edit project - AWS infrastructure
- Host: GitHub
- URL: https://github.com/bbc/digital-paper-edit-infrastructure
- Owner: bbc
- License: other
- Created: 2019-05-10T14:17:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-07-06T11:02:56.000Z (over 3 years ago)
- Last Synced: 2024-04-08T21:02:35.600Z (7 months ago)
- Topics: digital-paper-edit, news-labs, newslabs
- Language: Python
- Homepage:
- Size: 819 KB
- Stars: 1
- Watchers: 17
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Digital Paper Edit - Infrastructure
This is purely the infrastructural part to tie together with
[firebase](https://github.com/bbc/digital-paper-edit-firebase/) of Digital Paper
Edit.| Environment | URL |
| :---------- | :------------------------------------------------ |
| Test | |
| Live | |For historical undestanding of this repo, read
[ADR 2019-04-23-transcript-architecture.md](https://github.com/bbc/digital-paper-edit-client/blob/master/docs/ADR/2019-04-23-transcript-architecture.md)
for more information.## System Architecture
## Usage
- `infrastructure` contains deployment configurations.
- `SPEC` contains instructions to build an RPM. specific code. (WIP)The `Makefile` has instructions that will allow you to build your RPMS and
release them. `Makefile`, you can build the RPM that pulls in the NPM modules,
that contain the logic.These `Makefile` instructions will only work on BBC CentOS based machines, as it
requires certain BBC specific dependencies.## Development
Development for components should be done in the
[Client](https://github.com/bbc/digital-paper-edit-firebase/).### Dependencies
See [Client](https://github.com/bbc/digital-paper-edit-firebase/).
### Build
The RPM build is specific per environment. What this means is that environment
specific configuration is pulled in at build-time. It's retrieved via the SSM
(AWS's System Service Manager) and bundled in with `npm run build`. See
[Configuration section](#configuration-files) for more details.#### Cloudformation
You can build the AWS Stacks in `infrastructure` by running `make all`. This
will install Python dependencies in your `virtualenv` folder and generate the
templates.If you only want to build the stacks, run `make stacks`.
**Note**: There are 3 CFN files generated from the `make` steps.
- dns
- main
- userDNS and Main are both deployed in the
[Jenkins job](https://jenkins.newslabs.tools.bbc.co.uk/job/digital-paper-edit-infrastructure/),
and linked to
[Cosmos project for the client](https://cosmos.tools.bbc.co.uk/services/digital-paper-edit-client)If you want to create the Cloudformation, you will need to do it manually
[here](https://cosmos.tools.bbc.co.uk/services/digital-paper-edit-infrastructure).##### The User stack
The `user` is a standalone Jenkins job in
[Jenkins job](https://jenkins.newslabs.tools.bbc.co.uk/job/digital-paper-edit-stt-proxy/),
related to
[Cosmos project](https://cosmos.tools.bbc.co.uk/services/digital-paper-edit-stt-proxy).The separation is for historical reasons.
The generated user is used by the client app (GCP) to access an S3 bucket,
required to start the transcription process.### Deployment
For BBC deployment we use
[Jenkins job](https://jenkins.newslabs.tools.bbc.co.uk/job/digital-paper-edit-infrastructure/).
This will use the [Jenkins Deploy script](./jenkins-deploy) to release the RPM to the test environment. Live deployments should be done by promoting the release on Cosmos.### Configuration files
The [Client](https://github.com/bbc/digital-paper-edit-firebase/) needs a
working `.env` to be able to run.The `.env` file is pulled in during the `make dpe-prep` step. This step will
work on EC2 instances with attached instance profiles, that have permissions to
access the specified parameters and keys. With working instances, it's able to
pull in environment specific file and corresponding decrypt keys.The parameters in SSM should be named:
- test-digital-paper-edit-env
- live-digital-paper-edit-envThe keys in KMS should have aliases:
- alias/test-digital-paper-edit
- alias/live-digital-paper-editTest and live environments should be identical.
Jenkin's IAM Policy has been updated as part of
[issue 15](https://github.com/bbc/newslabs-jenkins/pull/15) and
[issue 16](https://github.com/bbc/newslabs-jenkins/pull/16) in Jenkins.## Licence
See [LICENCE](./LICENCE.md)
## Legal Disclaimer
_Despite using React and DraftJs, the BBC is not promoting any Facebook products
or other commercial interest._