SafeEnv

command module
v0.0.0-...-c6ae044 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 14, 2025 License: MIT Imports: 20 Imported by: 0

README

SafeEnv

SafeEnv is a web-based solution for securely storing and retrieving environment variables. Built with Go ,React, and Tailwind CSS

SafeEnv logo

Features

  • Secure and easy-to-use web interface to manage environment variables.
  • Real-time syncing with the backend to ensure up-to-date data.
  • Seamless authentication and authorization for accessing and modifying environment variables.
  • Responsive design with Tailwind CSS for a modern user experience.

Installation

To set up the SafeEnv frontend locally, follow these steps:

Prerequisites

Make sure you have the following installed:

Steps
  1. Clone the repository:

    git clone https://github.com/David-mwas/safeenv-frontend.git
    

SafeEnv API Documentation

Overview

SafeEnv is a secure API service for storing, retrieving, and sharing environment variables using encryption.

Base URL

http://localhost:8080

Endpoints

1. Welcome Route
GET /

Description: Returns a welcome message.

Response:

{
  "message": "Welcome to SafeEnv API"
}

2. Store an Environment Variable
POST /api/v1/store

Description: Stores an encrypted environment variable in MongoDB.

Request Body:

{
  "key": "API_KEY",
  "value": "secure123"
}

Response:

{
  "message": "Stored successfully"
}

3. Retrieve an Environment Variable
GET /api/v1/retrieve/:key

Description: Retrieves and decrypts a stored environment variable.

Response (Success):

{
  "key": "database_password",
  "value": "secure123"
}

Response (Error - Key Not Found):

{
  "error": "Not found"
}

POST /api/v1/share

Description: Generates a shareable link for retrieving an environment variable.

Request Body:

{
  "key": "database_password"
}

Response:

{
  "message": "Shareable link generated",
  "link": "http://localhost:8080/api/v1/retrieve/ZGF0YWJhc2VfcGFzc3dvcmQ="
}

5. Retrieve a Shared Environment Variable
GET /api/v1/share/retrieve/:key

Description: Retrieves an environment variable using a Base64-encoded key from a shared link.

Response (Success):

{
  "key": "database_password",
  "value": "secure123"
}

Response (Error - Invalid Key):

{
  "error": "Invalid key"
}

Response (Error - Key Not Found):

{
  "error": "Key not found"
}

Encryption Details

  • AES encryption is used to secure environment variables.
  • A 32-byte encryption key is required (stored in .env as SAFEENV_SECRET_KEY).
  • Base64 encoding is used for shareable keys.

Running the API

Ensure you have Go and MongoDB installed, then run:

go run main.go

Environment Variables

  • SAFEENV_SECRET_KEY: A 32-byte key for encryption.
  • MONGO_URI: MongoDB connection string (default: mongodb://localhost:27017).

Future Enhancements

  • JWT authentication for access control.
  • Audit logs for tracking variable access.
  • Expiry feature for shared links.

License

MIT License.

Documentation

Overview

main.go (Backend API using Go + Gin + MongoDB)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL