An open API service indexing awesome lists of open source software.

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

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]