पाठ 14 / 24
op read और op run
`op read` से एक मान लाएँ और secrets को environment variables के रूप में डालकर command चलाएँ।
आख़िरी क्षण में resolve
op read एक field print करता है। ऐप के लिए op run बेहतर है: यह environment variables में op:// references खोजता है, सिर्फ़ उस process के लिए उन्हें असली मान से बदलता है, और output में उन्हें छिपा देता है। Disk पर कुछ नहीं लिखा जाता।
.env जिसमें सिर्फ़ references हैं
यह .env.1p फ़ाइल commit करने के लिए सुरक्षित है क्योंकि इसमें कोई असली secret नहीं। ऐप शुरू करते समय op run मान भर देता है।
# .env.1p
DATABASE_URL=op://Dev/Postgres/url
STRIPE_KEY=op://Dev/Stripe/secret-key
# run the app with real values only in its environment
op run --env-file=.env.1p -- npm start
# read a single field
op read "op://Dev/Postgres/password"Secrets echo न करें
echo $(op read ...) और environment variables की logging से बचें। op run अपने जाने हुए मान छिपाता है, पर आपका अपना कोड उन्हें print कर सकता है, इसलिए पूरा environment कभी log न करें।
त्वरित जाँच: `op run --env-file=.env.1p -- npm start` क्या करता है?
- .env.1p को GitHub पर upload करता है
- op:// references resolve करके ऐप को असली मानों के साथ चलाता है
- Vault हटाता है
- सारे secrets terminal में print करता है
Answer
op:// references resolve करके ऐप को असली मानों के साथ चलाता है — मान सिर्फ़ child process के environment में, उसके चलने तक, रहते हैं।