> For the complete documentation index, see [llms.txt](https://www.feinfra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.feinfra.com/technical-functional-requirements/devops.md).

# DevOps

## Configure CI/CD pipelines

* Testing
* Deployment to appropriate environments
* Rolling Back

## Time Requirements

* Should take < 10m? Would require optimization on tests?
* Optimizing Build,

## Source Maps

* Do we want include source maps? In staging? Production
* Will it work with Sentry for error tracking

## Cloud/Local?&#x20;

* K8S? Etc?
* Migrations of data (mostly for BE, but should FE be aware/interact somehow)

## Environments

* Prod/Dev/Staging/Local environments
* Auth for each - Auth0
* Permissions to push to each via GitHub
* GitHub flow for merging and promoting app through environments
* Restrict push to main/staging (CI passes, # of approvals)

## Dockerize

* Dockerize local Env with mock backend or seeded backend or shared staging backend
  * Give DB access to add fake data on your own for FE devs for local integration testing

## Status Tracking

* Notify users what status of servers is, outages, 404 pages, 500 pages
* Independent from main service
* PagerDuty if something goes down for fast responses

## Mono Repo? Separate Repo? Component Repos?

* Do we separate out different parts of the app - admin vs public pages vs user frontend?
* Makes the app a lot more modular, forces to code in a self-contained way
* Slightly decreases dev speed
* Do we separate out components - charting etc for use in other apps

## Error Message strategy

* Codes? Contact links? Logging? How do we display? Standardized Language
* Separate environments for logging and error tracking (Datadog, Sentry)

## Testing Strategy

* Unit - Jest
* Ability to add seed data, API calls to seed data
* Common Scenarios to seed data
* Parallel Tests - different containers for parallelization in CI to avoid data race conditions
* Integration - with and without BE
* Mocking APIs (faster, doesn't account for actual state of API)
* Cypress
* Selenium
* Pickle/Cucumber
* Visual Regression Testing
* Chromatic
* Browser/Mobile Testing
* BrowserStack

## Logging/Observability Strategy

* DataDog
* What do we want to log
* Details every part of system with spans
* Sensitive info scrubbing
* User profile tracking
* Access controls for logged information
* Logging across BE/FE, ray tracing
* Start with FE API request, and then see what happened on the BE
* Configure Useful Views in Sentry/Datadog
* Analytics - Looker


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.feinfra.com/technical-functional-requirements/devops.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
