Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.1.0

env_reader

Leia, encripte ou gere variáveis de ambiente de um arquivo .env em um modelo Dart obfuscado.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
82
Curtidas
23
Pontos Pub
140

Instalar pacote

flutter pub add env_reader

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

env_reader é um pacote Dart que permite o manuseio seguro de variáveis de ambiente ao ler, criptografar ou gerar delas a partir de um arquivo .env. Ele transforma essas variáveis em um modelo Dart obfuscado, aumentando a segurança ao impedir a exposição de dados sensíveis. Projetado para uso em múltiplas plataformas, oferece suporte a Android, iOS, Web, macOS, Windows e Linux. O pacote se integra perfeitamente aos projetos Flutter por meio de um simples comando pub add. Ideal para desenvolvedores que priorizam a segurança de configuração em ambientes de produção e desenvolvimento.

Casos de uso

  • Gerenciando chaves de API com segurança
  • Protegendo credenciais de banco de dados
  • Gerenciando segredos de aplicativos em pipelines CI/CD
  • Habilitar arquivos de configuração criptografados
  • Compartilhando com segurança configurações de ambiente
  • Automatizando a geração de variáveis de ambiente

Principais recursos

  • Lê arquivos .env com segurança
  • Criptografa variáveis de ambiente
  • Gera modelos Dart obfuscados
  • Suporta implantação multiplataforma
  • Oferece integração fácil por meio do pub
  • Oferece utilitários de criptografia e descriptografia

Indicado para

  • Desenvolvedores focados na segurança do aplicativo
  • Equipes usando configurações baseadas em ambiente
  • Projetos que exigem gerenciamento de segredos
  • Aplicativos Flutter com dados sensíveis
  • workflows de CI/CD que precisam de manipulação segura de ambiente
  • Aplicativos implantados em múltiplas plataformas

Considerações

  • Requer gerenciamento adequado da chave de criptografia
  • A configuração inicial envolve etapas de configuração
  • A ofuscação não substitui a criptografia completa
  • Não adequado para segredos de tempo de execução altamente dinâmicos
  • Depende da presença de um arquivo .env externo
  • Pode exigir etapas adicionais no processo de compilação

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.


Env Reader

Read, encrypt, or generate environment variables from .env file into an obfuscated Dart model.

Features 🚀

  • Automated Generation: Transform your .env files into dynamic Dart models directly. No need to add annotation. ✨
  • Seamless Integration: Directly update your pubspec.yaml and .gitignore on command. No need manual labor. 🛠️
  • Fortified Encryption: Shield your precious .env configurations with an encryption. Say no to prying eyes.🔒
  • Data Diversity Unleashed: Whether they're integers, decimals, booleans, or strings. Automatic interpretation is at your service. 🎮
  • Versatile Sourcing: Load your .env from various sources: assets, files, memory, network, and strings. The choice is yours. 🔄

Install 🚀

Get started with these quick commands:

🔥 Add env_reader to your pubspec.yaml with a single line:

dart pub add env_reader

✨ Unlock the magic by activating the env_reader CLI:

dart pub global activate env_reader

Usage 🚀

Now elevate your development experience with these straightforward steps:

1. Set up your configuration

Start by crafting your .env file in the root directory of your project, right alongside your trusty pubspec.yaml.

API_KEY=VYIUJ7tLdJFqrBesnOJEpkbceBB5GNz0t1aYgHxK3BMxbJOc/g==
DEBUG=true
PORT=8080
DATABASE_URL=postgresql://user:password@localhost:5432/mydb

2. Run the command (Optional)

Now, if you want to generate encrypted env file, run this command in your terminal:

env_reader --input=".env" --output="assets/env/" --key="MyOptionalSecretKey"

[!NOTE] output: .env successfully encrypted into assets/env/.env 🚀

also if you want to generate dart model from this env file, use tihs:

env_reader --input-".env" --model="lib/src/env_model.dart" --null-safety

[!NOTE] output: .env successfully generated into lib/src/env_model.dart 🎉


3. Loading your .env

Load the env_reader instance:

import 'package:env_reader/env_reader.dart';
import 'package:flutter/services.dart';

await Env.load(
  EnvStringLoader(await rootBundle.loadString('assets/env/.env')),
  "MyOptionalSecretKey");

// Or you can load by creating your own `EnvReader` instance.

EnvReader production = EnvReader();
await production.load(
  EnvStringLoader(await rootBundle.loadString('assets/env/.env')),
  "MyOptionalSecretKey");

4. Access your configuration

To get and read the value of your env:

import 'package:env_reader/env_reader.dart';
import 'package:my_package/src/env_model.dart';

String api = Env.read("API_KEY") ?? "Got'cha 😎";
bool debug = Env.read<bool>("DEBUG") ?? false;

// If you make your own instance, call it like this

String api = production.read("API_KEY") ?? "Got'cha 😎";
bool debug = production.read<bool>("DEBUG") ?? false;

Text(
  text:
    debug ? "🤫 pssst, this is my api key y'all \n\n $api" : "Nothing to see here 🤪",
);

// Or you can access the value directly from env generated model earlier

Text(
  text:
    EnvModel.debug ? "🤫 pssst, this is my api key y'all \n\n ${EnvModel.apiKey}" : "Nothing to see here 🤪",
);

Env Reader Command 🚀

Available commands:

Flag Description
-i, --input (mandatory) Input path of the .env file
-o, --output Output path for the encrypted .env file
-s, --key Secrey key for encryption & decryption
--model Generate dart model file to your desired file path
--null-safety Make the model null safety
--[no-]obfuscate Obfuscating generated values of model
(defaults to on)
--[no-]pubspec Insert asset path to pubspec.yaml
(defaults to on)
--[no-]gitignore Insert .env input & output file into .gitignore
(defaults to on)
-h, --help Print usage information

Example usage:

env_reader -i ".env" -o "assets/env/" -s "MyOptionalSecretKey" --model="lib/src/env_model.dart" --null-safety

Example 🚀

Categorias

Dependências

Lista de dependências 3 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.