preferences-secrets

Manage encrypted secrets with sops and sops-nix for NixOS, nix-darwin, and home-manager.

14|Updated May 28, 2024
One-click install
npx skills add https://github.com/cameronraysmith/vanixiets --skill preferences-secrets
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: preferences-secrets
Source: https://github.com/cameronraysmith/vanixiets/tree/main/modules/home/ai/skills/src/core/preferences-secrets
Command: npx skills add https://github.com/cameronraysmith/vanixiets --skill preferences-secrets

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a comprehensive framework for securely managing sensitive information like API keys, passwords, and configuration secrets, preventing accidental exposure and ensuring compliance.

Core Features & Use Cases

  • Declarative Secrets Management: Integrates sops-nix for managing secrets within Nix configurations (NixOS, nix-darwin, home-manager).
  • Project-Level Secrets: Utilizes sops for encrypting sensitive files (YAML, JSON) within project repositories.
  • Key Management Strategies: Offers guidance on using Age vs. GPG keys, development key sharing, and CI/CD key management.
  • CI/CD Integration: Demonstrates secure secret handling in GitHub Actions workflows.
  • Use Case: Securely store your database credentials and API keys for a web application, ensuring they are encrypted at rest and only decrypted when needed by your CI/CD pipeline or local development environment.

Quick Start

Use the preferences-secrets skill to securely manage your API keys and database credentials.

Frequently Asked Questions about preferences-secrets

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I manage secrets in a NixOS configuration?

Manage secrets in NixOS by integrating sops-nix to declaratively handle encrypted files within NixOS, nix-darwin, and home-manager configurations. This ensures sensitive data is encrypted at rest and only decrypted when needed by the system or services.

What is the best way to store encrypted configuration files in a Git repository?

Storing encrypted configuration files in Git is best handled using sops to encrypt sensitive YAML and JSON files directly within your project repository. This prevents accidental exposure of API keys and passwords while maintaining version control history.

Should I use Age or GPG keys for sops secrets management?

Choosing between Age and GPG keys for sops secrets management depends on your workflow. The framework provides guidance on using Age versus GPG, detailing strategies for development key sharing and CI/CD key management to secure your deployment environments.

Can I securely handle secrets in GitHub Actions CI/CD pipelines?

Securely handling secrets in GitHub Actions CI/CD pipelines is supported through detailed integration strategies. The framework demonstrates how to securely manage and decrypt platform-specific secrets during deployment workflows without exposing them.

How do you manage multi-environment secrets for deployment?

Managing multi-environment secrets involves using sops for version-controlled encrypted files alongside platform-specific secrets for deployment environments. The framework provides detailed strategies for key management and CI/CD integration across different deployment targets.