Files
infisical/docs/internals/architecture.mdx
T
2023-09-09 10:00:09 +01:00

68 lines
2.3 KiB
Plaintext

---
title: "Architecture"
description: "How Infisical is built"
---
Infisical is a complex system with many parts to it. This page aims to help you build a mental model of the system architecture including how core flows are implemented.
![architecture](../../images/internals/architecture.png)
## Components
### Infisical API
The Infisical API (sometimes referred to as the **backend**) contains the core platform logic.
### Storage backend
Infisical relies on a storage backend to store data including users and secrets.
Currently, the only supported storage backend is [MongoDB](https://www.mongodb.com) but we plan to add support for other options including PostgreSQL in Q1 2024.
### Redis
Infisical uses Redis to enable more complex workflows including a queuing system to manage long running asynchronous tasks, cron jobs, as well as reliable cache for frequently used resources.
### Infisical Web UI
The Web UI is the browser-based portal that connects to the Infisical API.
### Infisical clients
Clients are any application or infrastructure that connecting to the Infisical API using one of the below methods:
- Public API: Making API requests directly to the Infisical API.
- Client SDK: A platform-specific library with method abstractions for working with secrets. Currently, there are two official SDKs: [Node SDK](https://github.com/Infisical/infisical-node) and [Python SDK](https://github.com/Infisical/infisical-python).
- CLI: A terminal-based interface for interacting with the Infisical API.
- Kubernetes Operator: This operator retrieves secrets from Infisical and securely stores them in a designated cluster; it uses an InfisicalSecret resource to dictate authentication and storage procedures.
## Flows
### Signup
When a user signs up for an account with Infisical using email/password, they must verify their email by correctly entering the 6-digit OTP code sent to their email.
After this procedure, a public-private k
### Login
### Single sign-on
### Team management
- Organizations
- Projects / environments / paths
### Secrets
- Saving secrets
- Fetching secrets
### Integrations
### Versioning
### Audit logging
## Resources
- For in depth details, consult the code.
- To get started with Infisical, try out the [Getting Started](https://infisical.com/docs/documentation/getting-started/introduction) overview.