https://github.com/foacs/website-backend-meta
Meta repository for backend services
https://github.com/foacs/website-backend-meta
aws aws-lambda backend cloudformation metarepo
Last synced: 11 months ago
JSON representation
Meta repository for backend services
- Host: GitHub
- URL: https://github.com/foacs/website-backend-meta
- Owner: Foacs
- License: cecill-2.1
- Created: 2022-11-07T18:44:02.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-27T17:20:36.000Z (over 3 years ago)
- Last Synced: 2025-02-21T17:51:35.546Z (over 1 year ago)
- Topics: aws, aws-lambda, backend, cloudformation, metarepo
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Meta repository for Foacs website backend
:toc:
== Description
This is the https://github.com/mateodelnorte/meta[meta] repository for the Foacs website backend services. It helps to organized multi-repo backend as a mono-repo.
== How to use this repo ?
This repo is the parent repo of all sub-repos. It is used by meta to aggregate all of them together.
You can perform git command across all sub-repos from this one.
In order to use meta, #you should install it#:
[source, bash]
----
$~ > npm i -g meta
----
=== Getting started
The following comment helps you to clone all "Foacs backend" repos in one go:
[source, bash]
----
$~ > meta git clone https://github.com/Foacs/website-backend-meta
----
Then you can perform the npm install across all repos:
[source, bash]
----
$~/backend-meta/ > meta exec "npm i"
----
You can build all the services by using:
[source, bash]
----
$~/backend-meta/ > meta exec "npm run build"
----
=== Tips
* You can perform any git command across all sub-repos by adding `meta` in front of the git command
[source, bash]
----
$~/backend-meta/ > meta git status
$~/backend-meta/ > meta git fetch
$~/backend-meta/ > meta git push
$~/backend-meta/ > meta git pull
----
* You can execute any command across all sub-repos with `meta exec` command
[source, bash]
----
$~/backend-meta/ > meta exec "ls -la"
----
== Project file structure
The project's files are organized as follow:
=== Infrastructure templates
The template files for infrastructure definition are kept in folder `infrastructure` and its sub-folders.
=== REST endpoint methods
The source code for REST endpoints are kept in folder `src` and then a folder for each methods.
== Environment & pipelines
It exists 4 environments each corresponding to a step of backend development.
=== Development environment https://dev.api.foacs.fr/[link]
This environment is used during the development of the backend, *it is not designed to be stable*. Its usage should be strictly reserved for development.
* It is deployed with the pipeline: https://github.com/Foacs/website-backend-meta/actions/workflows/deploy_dev.yaml[deploy development]
=== Testing environment https://test.api.foacs.fr/[link]
This environment is used during the testing of the backend, *it is not designed to be stable*. Its usage should be strictly reserved for testing.
* It is deployed with the pipeline: https://github.com/Foacs/website-backend-meta/actions/workflows/deploy_test.yaml[deploy testing]
=== Staging environment https://stage.api.foacs.fr/[link]
This environment is used as a copy of production. *It is designed to be stable* but it allows downtime.
* It is deployed with the pipeline: https://github.com/Foacs/website-backend-meta/actions/workflows/deploy_stage.yaml[deploy staging]
** The deployment requires a approval
=== Production environment https://api.foacs.fr/[link]
This environment is the production. *It is designed to be stable* but it does not allow downtime.
* It is deployed with the pipeline: https://github.com/Foacs/website-backend-meta/actions/workflows/deploy_prod.yaml[deploy production]
** The deployment requires a approval
** The deployment waits 15 minutes before it starts
== What are the sub-repo
The sub-repos, for Foacs website backend, are:
* https://github.com/Foacs/website-backend-user[website-backend-user]