എൻവയോൺമെന്റ് വേരിയബിളുകളും സീക്രട്ടുകളും എന്തൊക്കെയാണ്? ലളിതമായൊരു വഴികാട്ടി
എൻവയോൺമെന്റ് വേരിയബിൾ എന്നത് ഒരു പേരുള്ള ക്രമീകരണമാണ് — DATABASE_URL അല്ലെങ്കിൽ STRIPE_SECRET_KEY പോലെ — ഇത് നിങ്ങളുടെ ആപ്പ് പ്രവർത്തിക്കുമ്പോൾ അതിന് നൽകുന്നു, കോഡിൽ എഴുതുന്നതിന് പകരം. സീക്രട്ട് എന്നത് മൂല്യം സ്വകാര്യമായി നിലനിൽക്കേണ്ട എൻവയോൺമെന്റ് വേരിയബിളാണ്: ഒരു API കീ, ഒരു പാസ്വേഡ്, ഒരു സൈനിങ് കീ. ഈ മൂല്യങ്ങൾ കോഡിന് പുറത്ത് സൂക്ഷിക്കുന്നതുകൊണ്ട് ആപ്പ് എഡിറ്റ് ചെയ്യാതെ തന്നെ അവ മാറ്റാം, ടെസ്റ്റിംഗിനും യഥാർത്ഥ ഉപഭോക്താക്കൾക്കും വെവ്വേറെ മൂല്യങ്ങൾ ഉപയോഗിക്കാം, കോഡ് പങ്കുവെക്കുമ്പോഴോ പബ്ലിഷ് ചെയ്യുമ്പോഴോ അവ ചോരുന്നത് തടയാം.
AI ഉപയോഗിച്ച് നിർമ്മിക്കുമ്പോൾ ഇത് പ്രധാനമായത് എന്തുകൊണ്ട്
നിങ്ങളുടെ ആപ്പ് മറ്റൊരു സേവനവുമായി ഉപയോഗപ്രദമായ എന്തെങ്കിലും ചെയ്യാൻ തുടങ്ങുന്ന നിമിഷം — പേയ്മെന്റ് സ്വീകരിക്കുക, ഇമെയിൽ അയക്കുക, AI മോഡൽ വിളിക്കുക — അതിന് ഒരു കീ വേണ്ടിവരും. AI ആപ്പ് ബിൽഡറുകൾ ഇത്തരം കീകൾ പതിവായി ചോദിക്കാറുണ്ട്, കീ എവിടെ അവസാനിക്കുന്നു എന്നതാണ് നിങ്ങളുടെ ആപ്പ് സുരക്ഷിതമാണോ എന്ന് തീരുമാനിക്കുന്നത്.
AI ഉപയോഗിച്ച് നിർമ്മിച്ച ആപ്പുകളിൽ സാധാരണയായി രണ്ട് തെറ്റുകൾ സംഭവിക്കാറുണ്ട്:
- കീ ചാറ്റിലോ കോഡിലോ ഒട്ടിക്കുന്നു. പിന്നീട് അത് ചാറ്റ് ഹിസ്റ്ററിയിലും പ്രോജക്ട് ഫയലുകളിലും എക്സ്പോർട്ടുകളിലും റിപ്പോസിറ്ററിയിലും ഇരിക്കും. അത് കാണുന്ന ആർക്കും നിങ്ങളുടെ അക്കൗണ്ട് ഉപയോഗിക്കാം.
- കീ ബ്രൗസറിൽ ഉപയോഗിക്കുന്നു. Stripe അല്ലെങ്കിൽ OpenAI-യെ വിളിക്കുന്ന കോഡ് പേജിൽ പ്രവർത്തിക്കുമ്പോൾ, കീ ഓരോ സന്ദർശകനും അയക്കപ്പെടും. ആളുകൾ ഇത് നോക്കാറുണ്ട്, ചോർന്ന കീകൾ തിരയുന്ന ഓട്ടോമേറ്റഡ് സ്കാനറുകളും നിരന്തരം നോക്കിക്കൊണ്ടിരിക്കും.
എൻവയോൺമെന്റ് വേരിയബിളുകൾ മനസ്സിലാക്കിയാൽ ഈ രണ്ടും തിരിച്ചറിയാനും പരിഹാരം ആവശ്യപ്പെടാനും കഴിയും.
ദൈനംദിന ഉദാഹരണം: ഹോട്ടൽ സേഫ്
നിങ്ങളുടെ ആപ്പിന്റെ കോഡ് ഒരു ഹോട്ടൽ മുറി പോലെയാണ്. അതിഥികളും ക്ലീനർമാരും നിങ്ങൾ കാർഡ് കൊടുത്തവരും അതിലൂടെ കടന്നുപോകുന്നു. നിങ്ങളുടെ പാസ്പോർട്ട് മേശപ്പുറത്ത് വെക്കില്ലല്ലോ.
എൻവയോൺമെന്റ് വേരിയബിളുകൾ മുറിയിലെ സേഫ് പോലെയാണ്. സേഫ് ഉണ്ടെന്നും ആവശ്യമുള്ളപ്പോൾ അത് തുറക്കുന്നത് എങ്ങനെയെന്നും മുറിക്ക് അറിയാം, പക്ഷേ പാസ്പോർട്ട് പുറത്ത് കിടക്കുന്നില്ല. നിങ്ങൾ വേറൊരു മുറിയിലേക്ക് മാറുമ്പോൾ — ടെസ്റ്റ് സെറ്റപ്പിൽ നിന്ന് ലൈവ് സൈറ്റിലേക്ക് — മുറി പുതുക്കിപ്പണിയാതെ തന്നെ ആ മുറിയുടെ സേഫിൽ വേറൊരു പാസ്പോർട്ട് വെക്കാം.
ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു
നിങ്ങളുടെ കോഡ് ഒരു മൂല്യത്തെയല്ല, ഒരു പേരിനെയാണ് സൂചിപ്പിക്കുന്നത്. സെർവറിലെ JavaScript-ൽ അത് process.env.STRIPE_SECRET_KEY പോലെ കാണപ്പെടും. ആപ്പ് തുടങ്ങുമ്പോൾ അത് പ്രവർത്തിക്കുന്ന പ്ലാറ്റ്ഫോം ആ പേരിന് മൂല്യം നിറയ്ക്കുന്നു. പ്ലാറ്റ്ഫോമിന്റെ ക്രമീകരണങ്ങളിൽ മൂല്യം മാറ്റി, വീണ്ടും തുടങ്ങുകയോ ഡിപ്ലോയ് ചെയ്യുകയോ ചെയ്താൽ ആപ്പ് പുതിയ മൂല്യം ഉപയോഗിക്കും — കോഡ് മാറ്റം ആവശ്യമില്ല.
ആപ്പ് എവിടെ പ്രവർത്തിക്കുന്നു എന്നതിനനുസരിച്ച് മൂല്യങ്ങൾ എവിടെനിന്ന് വരുന്നു എന്നത് മാറും:
| എവിടെ പ്രവർത്തിക്കുന്നു | മൂല്യങ്ങൾ എവിടെ സൂക്ഷിക്കുന്നു |
|---|---|
| ഡെവലപ്പറുടെ ലാപ്ടോപ്പിൽ | സാധാരണയായി .env എന്ന ലോക്കൽ ഫയൽ, ഇത് ഒരിക്കലും git-ലേക്ക് കമ്മിറ്റ് ചെയ്യരുത് |
| AI ബിൽഡറിന്റെ പ്രിവ്യൂവിൽ | പ്രോജക്റ്റിന്റെ സീക്രട്ട്സ് അല്ലെങ്കിൽ ക്രമീകരണ പാനൽ |
| ഒരു ഹോസ്റ്റിംഗ് പ്ലാറ്റ്ഫോമിൽ | ആ പ്ലാറ്റ്ഫോമിന്റെ എൻവയോൺമെന്റ് വേരിയബിൾ ക്രമീകരണങ്ങൾ |
| GitHub Actions അല്ലെങ്കിൽ മറ്റ് ഓട്ടോമേഷനിൽ | സേവനത്തിന്റെ സ്വന്തം എൻക്രിപ്റ്റഡ് സീക്രട്ട്സ് സ്റ്റോർ |
പബ്ലിക് vs സീക്രട്ട് വേരിയബിളുകൾ
എല്ലാ എൻവയോൺമെന്റ് വേരിയബിളുകളും സീക്രട്ട് അല്ല. അവയെ രണ്ട് കൂട്ടമായി തിരിക്കുന്നത് സഹായകമാണ്:
| തരം | ഉദാഹരണങ്ങൾ | ബ്രൗസറിന് കാണാമോ? |
|---|---|---|
| പബ്ലിക് ക്രമീകരണം | സൈറ്റിന്റെ പേര്, പബ്ലിക് അനലിറ്റിക്സ് ID, Stripe publishable കീ, ഫീച്ചർ സ്വിച്ചുകൾ | കാണാം, അത് കുഴപ്പമില്ല |
| സീക്രട്ടുകൾ | Stripe secret കീ, OpenAI അല്ലെങ്കിൽ Anthropic API കീ, ഡാറ്റാബേസ് കണക്ഷൻ സ്ട്രിംഗ്, ഇമെയിൽ പ്രൊവൈഡർ കീ, വെബ്ഹുക്ക് സൈനിങ് സീക്രട്ട് | ഒരിക്കലും ഇല്ല |
വെബ് ഫ്രെയിംവർക്കുകൾ ഈ വിഭജനം വ്യക്തമാക്കുന്നു. Vite-ൽ VITE_ എന്ന് തുടങ്ങുന്ന പേരുള്ള വേരിയബിളുകൾ മാത്രമേ ബ്രൗസർ കോഡിൽ ഉൾപ്പെടുത്തൂ; Next.js-ൽ പ്രിഫിക്സ് NEXT_PUBLIC_ ആണ്. ഇതൊരു സുരക്ഷാ സംവിധാനമാണ്: ഈ പ്രിഫിക്സുള്ള എല്ലാം ഓരോ സന്ദർശകനും ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകളിൽ എത്തും, അതുകൊണ്ട് ഒരു സീക്രട്ടിന് ഒരിക്കലും ഈ പ്രിഫിക്സ് നൽകരുത്.
ഒരു ഉദാഹരണം: AI സംഗ്രഹ ബട്ടൺ
"ഈ കുറിപ്പ് സംഗ്രഹിക്കുക" എന്ന ബട്ടൺ ഒരു AI മോഡലിനെ വിളിക്കണം എന്ന് കരുതുക.
സുരക്ഷിതമല്ലാത്ത രീതി: ബ്രൗസറിൽ പ്രവർത്തിക്കുന്ന ബട്ടണിന്റെ കോഡ്, API കീ അതിൽത്തന്നെ എഴുതി വെച്ച്, AI പ്രൊവൈഡറെ നേരിട്ട് വിളിക്കുന്നു. പ്രിവ്യൂവിൽ അത് പ്രവർത്തിക്കും. പക്ഷേ ആർക്കും ബ്രൗസറിന്റെ ഡെവലപ്പർ ടൂൾസ് തുറന്ന് കീ പകർത്തി നിങ്ങളുടെ അക്കൗണ്ടിൽ ബിൽ കൂട്ടാം.
സുരക്ഷിതമായ രീതി:
- AI പ്രൊവൈഡറിൽ നിങ്ങൾ കീ ഉണ്ടാക്കി, പ്രോജക്ട് ക്രമീകരണങ്ങളിൽ
OPENAI_API_KEY(അല്ലെങ്കിൽ സമാനമായ പേര്) എന്ന സീക്രട്ടായി സൂക്ഷിക്കുന്നു. - ബാക്കെൻഡിൽ
POST /api/summariseഎന്ന റൂട്ട് ഉണ്ടാക്കുന്നു; അത്process.env.OPENAI_API_KEYവായിക്കുകയും ഉപയോക്താവ് ലോഗിൻ ചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുകയും പ്രൊവൈഡറെ വിളിക്കുകയും ചെയ്യുന്നു. - ബട്ടൺ പ്രൊവൈഡറെയല്ല, നിങ്ങളുടെ റൂട്ടിനെയാണ് വിളിക്കുന്നത്. ബ്രൗസർ ഒരിക്കലും കീ കാണുന്നില്ല.
- പബ്ലിഷ് ചെയ്ത ആപ്പിന്റെ ക്രമീകരണങ്ങളിലും അതേ സീക്രട്ട് ചേർത്ത് വീണ്ടും ഡിപ്ലോയ് ചെയ്യുന്നു, അങ്ങനെ ലൈവ് സൈറ്റിലും അത് ഉണ്ടാകും.
ബ്രൗസർ സെർവറിനെ വിളിക്കുന്നു, സെർവർ കീ സൂക്ഷിച്ച് സേവനത്തെ വിളിക്കുന്നു — ഈ രീതി പേയ്മെന്റ്, ഇമെയിൽ, മാപ്പുകൾ, മറ്റെല്ലാ പണമടച്ചുള്ള API-കൾക്കും ബാധകമാണ്. AI കേസിനെക്കുറിച്ച് കൂടുതൽ വിശദമായി LLM API-കൾ ഉപയോഗിക്കുന്നതിനുള്ള ഗൈഡ് വിവരിക്കുന്നു.
പ്രധാന പദങ്ങൾ
.envഫയൽ:NAME=valueവരികളുള്ള ഒരു ടെക്സ്റ്റ് ഫയൽ, ലോക്കൽ ഡെവലപ്മെന്റിൽ ഉപയോഗിക്കുന്നു. കമ്മിറ്റ് ആകാതിരിക്കാൻ.gitignore-ൽ ഇത് ചേർക്കുക..env.example: യഥാർത്ഥ മൂല്യങ്ങളില്ലാതെ പേരുകൾ മാത്രമുള്ള ഒരു പകർപ്പ്. ഏതൊക്കെ വേരിയബിളുകൾ സജ്ജമാക്കണം എന്ന് മറ്റുള്ളവർക്ക് അറിയാൻ ഇത് കമ്മിറ്റ് ചെയ്യുന്നു.- റൊട്ടേറ്റ് ചെയ്യുക: ഒരു സീക്രട്ടിന് പകരം പുതിയത് വെച്ച്, പഴയത് റദ്ദാക്കുക.
- സ്കോപ്പ് / അനുമതികൾ: പല പ്രൊവൈഡർമാരും ചില കാര്യങ്ങൾ മാത്രം ചെയ്യാൻ കഴിയുന്ന കീകൾ ഉണ്ടാക്കാൻ അനുവദിക്കുന്നു. ഇമെയിൽ മാത്രം അയക്കാൻ കഴിയുന്ന കീ, എല്ലാം ചെയ്യാൻ കഴിയുന്നതിനേക്കാൾ അപകടം കുറഞ്ഞതാണ്.
- ടെസ്റ്റ് vs ലൈവ് കീകൾ: Stripe പോലുള്ള പ്രൊവൈഡർമാർ ടെസ്റ്റിംഗിനും യഥാർത്ഥ പണത്തിനും വെവ്വേറെ കീകൾ നൽകുന്നു. ലോഞ്ച് ചെയ്യുന്നതുവരെ ടെസ്റ്റ് കീകൾ ഉപയോഗിക്കുക.
- സൈനിങ് സീക്രട്ട്: ഒരു വെബ്ഹുക്ക് പോലുള്ള സന്ദേശം യഥാർത്ഥത്തിൽ അയച്ചയാളിൽ നിന്നാണോ വന്നത് എന്ന് പരിശോധിക്കാൻ ഉപയോഗിക്കുന്ന സീക്രട്ട്.
സാധാരണ തെറ്റുകളും തെറ്റിദ്ധാരണകളും
- "എന്റെ റിപ്പോസിറ്ററി പ്രൈവറ്റ് ആണ്, അതിൽ കീകൾ ഇട്ടാലും കുഴപ്പമില്ല." പ്രൈവറ്റ് റിപ്പോസിറ്ററികളും പങ്കുവെക്കപ്പെടുന്നു, ഫോർക്ക് ചെയ്യപ്പെടുന്നു, എക്സ്പോർട്ട് ചെയ്യപ്പെടുന്നു, ലാപ്ടോപ്പുകളിലേക്ക് ക്ലോൺ ചെയ്യപ്പെടുന്നു. കീകൾ അവിടെ ഒരിക്കലും പാടില്ല. ഒരു പ്രോജക്റ്റ് GitHub-മായി ബന്ധിപ്പിക്കുകയാണെങ്കിൽ, ഒരു
.envഫയലും ഉൾപ്പെട്ടിട്ടില്ലെന്ന് പരിശോധിക്കുക. - "ഞാൻ അത് മായ്ച്ചു, അതിനാൽ അത് പോയി." Git ഹിസ്റ്ററി സൂക്ഷിക്കുന്നു, ചാറ്റ് ലോഗുകളിൽ സന്ദേശങ്ങളും ഉണ്ടാകും. ഒരു കീ ഒരിക്കലെങ്കിലും ചോർന്നിട്ടുണ്ടെങ്കിൽ, അത് റൊട്ടേറ്റ് ചെയ്യുക.
- സീക്രട്ടിന് പബ്ലിക് പ്രിഫിക്സ് ഇടുന്നത്.
VITE_OPENAI_KEYനിങ്ങളുടെ കീ ബ്രൗസർ ബണ്ടിലിൽ എത്തിക്കുന്നു. - വീണ്ടും ഡിപ്ലോയ് ചെയ്യാൻ മറക്കുന്നത്. ക്രമീകരണങ്ങളിൽ ഒരു വേരിയബിൾ മാറ്റിയാൽ, സാധാരണയായി ആപ്പ് വീണ്ടും തുടങ്ങിയോ വീണ്ടും പബ്ലിഷ് ചെയ്തോ കഴിഞ്ഞാൽ മാത്രമേ അത് പ്രാബല്യത്തിൽ വരൂ.
- എല്ലാത്തിനും ഒരേ കീ. ടെസ്റ്റിനും ലൈവിനും, ഓരോ ആപ്പിനും വെവ്വേറെ കീകൾ ഉണ്ടെങ്കിൽ, മറ്റുള്ളവ തകർക്കാതെ ഒന്ന് റദ്ദാക്കാം.
- ചെലവ് പരിധി ഇല്ലാത്തത്. പണമടച്ചുള്ള API-കൾക്ക്, കീ ചോർന്നാൽ എന്ന് കരുതി പ്രൊവൈഡറുടെ ഡാഷ്ബോർഡിൽ ഒരു ബജറ്റോ പരിധിയോ സജ്ജമാക്കുക.
നിങ്ങളുടെ AI ബിൽഡറോട് എന്ത് ആവശ്യപ്പെടണം
- "Stripe സീക്രട്ട് കീ
STRIPE_SECRET_KEYഎന്ന എൻവയോൺമെന്റ് വേരിയബിളിൽ നിന്ന് വായിക്കുക. സെർവറിൽ മാത്രം ഉപയോഗിക്കുക." - "ഒരു സീക്രട്ടും ക്ലയന്റ് സൈഡ് കോഡിൽ ഉപയോഗിക്കുകയോ
VITE_/NEXT_PUBLIC_പ്രിഫിക്സ് നൽകുകയോ ചെയ്യുന്നില്ലെന്ന് ഉറപ്പാക്കുക." - "ആപ്പിന് ആവശ്യമായ എല്ലാ വേരിയബിളുകളും മൂല്യങ്ങളില്ലാതെ പട്ടികപ്പെടുത്തുന്ന
.env.exampleഉണ്ടാക്കുകയും.envgit-ignore ചെയ്യുകയും ചെയ്യുക." - "ബിൽഡ് ചെയ്ത ഫ്രണ്ടെൻഡ് ഫയലുകളിൽ API കീ പോലെ തോന്നുന്ന ഏതെങ്കിലും സ്ട്രിംഗ് ഉണ്ടോ എന്ന് പരിശോധിക്കുക."
ലോഞ്ചിന് മുമ്പ് മറ്റ് പരിശോധനകൾക്കൊപ്പം സീക്രട്ടുകളും ഉൾപ്പെടുന്ന AI-നിർമ്മിത ആപ്പുകൾക്കുള്ള സുരക്ഷാ പരിശോധനാപ്പട്ടിക ഉണ്ട്.
Mythex-ൽ സീക്രട്ടുകൾ
Mythex-ൽ, സീക്രട്ടുകൾ പ്രോജക്റ്റ് എൻവയോൺമെന്റ് വേരിയബിളുകളാണ്; അവ പ്രിവ്യൂ സാൻഡ്ബോക്സിലേക്കും പബ്ലിഷ് ചെയ്ത ആപ്പിലേക്കും ഒരുപോലെ നൽകപ്പെടുന്നു. project settings → Secrets വഴിയോ ചാറ്റിൽ /secrets ഉപയോഗിച്ചോ നിങ്ങൾ അവ ചേർക്കുന്നു. ഏജന്റിന് ഒരു കീ ആവശ്യമാകുമ്പോൾ അത് ചാറ്റിൽ ഒരു സീക്രട്ട്സ് കാർഡ് കാണിക്കുന്നു, അതുകൊണ്ട് മൂല്യം സന്ദേശ ട്രാൻസ്ക്രിപ്റ്റിൽ അല്ല, ഒരു ഫോം ഫീൽഡിലാണ് പോകുന്നത്. ലൈവ് ആപ്പിനുള്ള ഒരു സീക്രട്ട് മാറ്റിയാൽ, ഡിപ്ലോയ് അത് എടുക്കാൻ വീണ്ടും പബ്ലിഷ് ചെയ്യുക. പ്രോജക്റ്റ് എക്സ്പോർട്ടുകളിൽ സീക്രട്ടുകൾ ഉണ്ടാകില്ല, ഇമ്പോർട്ട് ചെയ്ത .env ഫയലുകളിൽ നിന്ന് അവ നീക്കം ചെയ്യപ്പെടും, അതിനാൽ ക്രമീകരണങ്ങളിൽ വീണ്ടും ചേർക്കണം. ഡോക്സിൽ എൻവയോൺമെന്റ് വേരിയബിളുകളും സീക്രട്ടുകളും, ചാറ്റിലെ സീക്രട്ടുകൾ എന്നിവ കാണുക.
ചോദ്യങ്ങൾ
എന്താണ് ഒരു എൻവയോൺമെന്റ് വേരിയബിൾ?
STRIPE_SECRET_KEY അല്ലെങ്കിൽ DATABASE_URL പോലെ ഒരു പേരുള്ള ക്രമീകരണമാണ് എൻവയോൺമെന്റ് വേരിയബിൾ. ഇത് പ്രോഗ്രാമിന്റെ കോഡിൽ എഴുതുന്നതിന് പകരം, അത് പ്രവർത്തിക്കുമ്പോൾ അതിന് നൽകുന്നു. അതുകൊണ്ട് ഒരേ കോഡിന് ഡെവലപ്മെന്റിലും പ്രൊഡക്ഷനിലും വ്യത്യസ്ത മൂല്യങ്ങൾ ഉപയോഗിക്കാം.
എൻവയോൺമെന്റ് വേരിയബിളും സീക്രട്ടും തമ്മിലുള്ള വ്യത്യാസം എന്ത്?
മൂല്യം സ്വകാര്യമായി സൂക്ഷിക്കേണ്ട എൻവയോൺമെന്റ് വേരിയബിളാണ് സീക്രട്ട്. API കീ, ഡാറ്റാബേസ് പാസ്വേഡ് അല്ലെങ്കിൽ വെബ്ഹുക്ക് സൈനിങ് സീക്രട്ട് ഇതിന് ഉദാഹരണങ്ങളാണ്. സൈറ്റിന്റെ പേര് അല്ലെങ്കിൽ ഫീച്ചർ സ്വിച്ച് പോലുള്ള മറ്റ് എൻവയോൺമെന്റ് വേരിയബിളുകൾ പബ്ലിക് ആകാം.
എന്റെ ഫ്രണ്ടെൻഡിൽ API കീ ഇടുന്നത് സുരക്ഷിതമാണോ?
അല്ല. ഫ്രണ്ടെൻഡ് കോഡിലുള്ള എല്ലാം ഓരോ സന്ദർശകന്റെയും ബ്രൗസറിലേക്ക് ഡൗൺലോഡ് ആകുകയും വായിക്കാൻ കഴിയുകയും ചെയ്യും. സീക്രട്ട് കീകൾ സെർവറിൽ മാത്രമേ ഉപയോഗിക്കാവൂ; ബ്രൗസർ നിങ്ങളുടെ സെർവറിനെ വിളിക്കണം, സെർവർ ആണ് പ്രൊവൈഡറെ വിളിക്കേണ്ടത്.
എന്റെ API കീ ചോർന്നാൽ ഞാൻ എന്ത് ചെയ്യണം?
ഉടൻ പ്രൊവൈഡറിൽ കീ റദ്ദാക്കുകയോ മാറ്റുകയോ ചെയ്യുക, പുതിയ ഒന്ന് ഉണ്ടാക്കുക, നിങ്ങളുടെ ആപ്പ് സീക്രട്ടുകൾ സൂക്ഷിക്കുന്ന ഇടത്ത് അത് അപ്ഡേറ്റ് ചെയ്ത് വീണ്ടും ഡിപ്ലോയ് ചെയ്യുക. കോഡിൽ നിന്നോ ചാറ്റ് ഹിസ്റ്ററിയിൽ നിന്നോ കീ മായ്ച്ചാൽ മതിയാകില്ല, കാരണം കോപ്പികൾ ഇതിനകം ഉണ്ടായിരിക്കാം.