Infisical Coding Assignment Consumer Secrets Management
Infisical Coding Assignment Consumer Secrets Management
Background
Infisical currently focuses on managing application secrets such as API keys,
certificates, and configurations used throughout software infrastructure. However,
companies often need to manage other types of secrets, including website logins,
corporate credit card details, social media accounts, software licenses, and more.
These are classified as consumer secrets. For this assignment, you will develop a
Minimum Viable Product (MVP) for consumer secrets management.
Task Breakdown
Frontend Requirements
Navigation
Create a new navigation item at the organization level called "User Secrets".
Each credential type (e.g., credit card, web login) may have specific fields.
Implement at least one type of credential, such as:
3. Backend Requirements
Database Schema
Design a new table to store consumer credentials. You are welcome to create
more than one table if you see fit.
Credentials should be tied to the logged in user and their Infisical organization.
API Endpoints
Get started
Prerequisite
Since you will be working in the main Infisical repository, please ensure you have
Git and Docker installed on your computer.
Begin by forking the Infisical Github repository. After cloning the repository,
rename the file named example.env to .env located at the root of the cloned
repository. Next, run the docker compose command docker-compose -f docker-
After the local server is up, visit http://localhost:8080/ to access the local instance
of Infisical.
DB host: localhost
DB username: infisical
DB password: infisical
DB name: infisical
DB port: 5432
Notes: This is an MVP. We want to see you be hacky and deliver a working
product quickly. You may take inspiration from products such as
1Password/Bitwarden.
Evaluation Criteria
Security: The feature must handle the storage of saved credentials securely
and should not introduce vulnerabilities.
Deliverables
A screen recording walkthrough of the feature in use. Use tools like Loom for
recording. Keep video at most 5 minutes in length.
of luck!