WordPress-ന്റെ ഇൻബിൽറ്റ് അഡ്മിൻ-ഇമെയിൽ വെരിഫിക്കേഷൻ സ്ക്രീൻ—വേർഷൻ 5.3 മുതൽ ഏതാനും മാസങ്ങൾ കൂടുമ്പോൾ കാണ aparición ചെയ്യുന്നത്—SSH ആക്സസ് ഇല്ലാത്ത സൈറ്റുകളിൽ പ്ലഗിനുകൾ അപ്‌ഡേറ്റ് ചെയ്യുന്ന Playwright ഓട്ടോമേഷനെ തടസ്സപ്പെടുത്തുന്നു. ഈ അധിക ഘട്ടം, ഒരിക്കലും പ്രത്യക്ഷപ്പെടാത്ത ഒരു ബട്ടണിനായി സ്ക്രിപ്റ്റുകൾ കാത്തുനിൽക്കാൻ നിർബന്ധിക്കുന്നു, ഇത് ടൈമൗട്ടുകൾക്കും (timeouts) ഡെപ്ലോയ്‌മെന്റുകൾ തടസ്സപ്പെടുന്നതിനും കാരണമാകുന്നു.

തടസ്സത്തിന് കാരണമാകുന്നത് എന്താണ്

ഒരു Playwright സ്ക്രിപ്റ്റ് wp-admin-ലേക്ക് ലോഗിൻ ചെയ്യുമ്പോൾ ഡാഷ്‌ബോർഡ് ഉടൻ ലോഡ് ആകുമെന്ന് അത് പ്രതീക്ഷിക്കുന്നു. എന്നാൽ, പകരം WordPress ചിലപ്പോൾ adminhash= അടങ്ങിയ ഒരു URL-ലേക്ക് റീഡയറക്ട് ചെയ്യുന്നു. ആ പേജ്, “Is this still your address?” എന്ന് ചോദിക്കുകയും രണ്ട് ബട്ടണുകൾ നൽകുകയും ചെയ്യുന്നു: Yes, this is my address ഉം I’ll wait ഉം. ഒരു മനുഷ്യൻ “I’ll wait” ക്ലിക്ക് ചെയ്ത് പിന്നീട് കാര്യങ്ങൾ തുടരുന്നു; എന്നാൽ ഒരു ഓട്ടോമേറ്റഡ് സ്ക്രിപ്റ്റ് ഡാഷ്‌ബോർഡിന്റെ എലമെന്റുകൾക്കായി തിരഞ്ഞുകൊണ്ടേയിരിക്കും, അവ കണ്ടെത്താൻ കഴിയാതെ ഒടുവിൽ ടൈമൗട്ട് സംഭവിക്കുന്നു.

എന്തുകൊണ്ടാണ് ഈ പ്രോംപ്റ്റ് വരുന്നത്

അഡ്മിൻ ഇമെയിൽ അഡ്രസ്സ് ഇപ്പോഴും ലഭ്യമാണോ എന്ന് സ്ഥിരീകരിക്കുന്നതിനാണ് WordPress ഈ പ്രോംപ്റ്റ് ഉൾപ്പെടുത്തിയത്. സൈറ്റിന്റെ പ്രവർത്തനങ്ങൾ പരിഗണിക്കാതെ തന്നെ ഏകദേശം ഏതാനും മാസങ്ങൾ കൂടുമ്പോൾ ഇത് പ്രത്യക്ഷപ്പെടുന്നു. ഇമെയിൽ അഡ്രസ്സിലേക്കുള്ള ആക്സസ് നഷ്ടപ്പെട്ടേക്കാവുന്ന സൈറ്റ് ഉടമകൾക്കായുള്ള ഒരു സുരക്ഷാ പരിശോധനയാണിത്.

ആരെല്ലാം ഇതിനാൽ ബാധിക്കപ്പെടുന്നു

  • ഡെവലപ്പർമാർ (Developers), പ്ലഗിൻ അപ്‌ഡേറ്റുകൾ നൽകാനോ, UI ടെസ്റ്റുകൾ നടത്താനോ, അല്ലെങ്കിൽ ബൾക്ക് അഡ്മിൻ ജോലികൾ ചെയ്യാനോ Playwright-നെ ആശ്രയിക്കുന്നവർ.
  • ഹോസ്റ്റിംഗ് പ്രൊവൈഡർമാർ (Hosting providers), SSH നിയന്ത്രിക്കുകയും ഉപയോക്താക്കളെ ബ്രൗസർ വഴി ഓട്ടോമേറ്റ് ചെയ്യാൻ നിർബന്ധിക്കുകയും ചെയ്യുന്നവർ.
  • സൈറ്റ് ഉടമകൾ (Site owners), ഓട്ടോമേഷൻ ഒരിക്കലും അപ്‌ഡേറ്റ് സ്ക്രീനിൽ എത്താത്തതിനാൽ അപ്‌ഡേറ്റുകൾ വൈകുന്നത് നേരിടുന്നവർ.

ഇത് വെറും കുറച്ച് സെക്കന്റുകൾ നഷ്ടപ്പെടുന്നത് മാത്രമല്ല; ആവർത്തിച്ചുള്ള പരാജയങ്ങൾ ഷെഡ്യൂൾ ചെയ്ത മെയിന്റനൻസ് വിൻഡോകളെ തടസ്സപ്പെടുത്തുകയും മാനുവൽ ഇടപെടലുകൾക്ക് (manual intervention) നിർബന്ധമാക്കുകയും ചെയ്യുന്നു.

അനാവശ്യമായ സ്ക്രീൻ എങ്ങനെ കണ്ടെത്താം

നിലവിലെ URL-ൽ adminhash= ഉണ്ടോ എന്ന് പരിശോധിക്കുന്നത് ഒരു വിശ്വസനീയമായ സൂചനയാണ്. ഈ സ്ട്രിംഗ് ഇമെയിൽ വെരിഫിക്കേഷൻ പേജിൽ മാത്രമേ കാണപ്പെടുന്നുള്ളൂ, സാധാരണ ഡാഷ്‌ബോർഡിലോ മറ്റ് അഡ്മിൻ സ്ക്രീനുകളിലോ അല്ല.

ലളിതമായ ഒരു ബൈപാസ് (bypass)

ലോഗിൻ ഘട്ടത്തിന് തൊട്ടുപിന്നാലെ ഒരു ചെക്ക് ഇൻസേർട്ട് ചെയ്യുക. URL-ൽ adminhash= ഉണ്ടെങ്കിൽ, “I’ll wait” ബട്ടൺ ക്ലിക്ക് ചെയ്യുക, തുടർന്ന് മുന്നോട്ട് പോകുന്നതിന് മുമ്പ് പേജ് ലോഡ് ആകുന്നത് വരെ കാത്തിരിക്കുക.

def ensure_past_email_check(page):
    if "adminhash=" in page.url:
        page.click("text=I'll wait")
        page.wait_for_load_state("networkidle")

ഓരോ വിജയകരമായ ലോഗിന് ശേഷവും ഉടൻ തന്നെ ensure_past_email_check(page) വിളിക്കുക. വെരിഫിക്കേഷൻ സ്ക്രീൻ പ്രത്യക്ഷപ്പെടാത്തപ്പോൾ ഈ ഫംഗ്ഷൻ ഒന്നും ചെയ്യുന്നില്ല, ഇത് സ്ക്രിപ്റ്റിന്റെ വേഗതയും കൃത്യതയും നിലനിർത്തുന്നു.

എപ്പോഴാണ് ഈ ബൈപാസ് ഉപയോഗിക്കേണ്ടത്

മനുഷ്യന്റെ മേൽനോട്ടം ഇല്ലാതെ പ്രവർത്തിക്കേണ്ട ഓട്ടോമേറ്റഡ് വർക്ക്ഫ്ലോകൾക്കായി (ഉദാഹരണത്തിന്, രാത്രികാല പ്ലഗിൻ അപ്‌ഡേറ്റുകൾ അല്ലെങ്കിൽ continuous-integration UI ടെസ്റ്റുകൾ) ഈ ബൈപാസ് പ്രായോഗികമാണ്. ഇത് വെരിഫിക്കേഷൻ ഘട്ടത്തെ ഒരു അപ്രതീക്ഷിത പരാജയമായല്ല, മറിച്ച് മുൻകൂട്ടി കാണാവുന്ന ഒരു വഴിമാറ്റമായി കാണുന്നു.

മറ്റൊരു വശം (Counter-point)

പ്രോംപ്റ്റുകൾ സ്വയമേവ ഒഴിവാക്കുന്നത് യഥാർത്ഥ ഇമെയിൽ ഡെലിവറി പ്രശ്നങ്ങളെ മറച്ചുവെച്ചേക്കാം എന്ന് ചില അഡ്മിനിസ്ട്രേറ്റർമാർ വാദിക്കുന്നു. അഡ്മിൻ ഇമെയിൽ യഥാർത്ഥത്തിൽ ലഭ്യമാകാത്ത സാഹചര്യത്തിൽ, സൈറ്റിന് നിർണ്ണായകമായ അറിയിപ്പുകൾ നഷ്ടപ്പെട്ടേക്കാം. അത്തരം സന്ദർഭങ്ങളിൽ, ഈ സംഭവം ലോഗ് ചെയ്യുകയോ, ഒരു അലേർട്ട് അയക്കുകയോ, അല്ലെങ്കിൽ ഓട്ടോമേഷൻ താൽക്കാലികമായി നിർത്തുകയോ ചെയ്യുന്ന രീതിയിലുള്ള കൂടുതൽ സൂക്ഷ്മമായ സമീപനമായിരിക്കും നല്ലത്.

ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ

  • WordPress URL പാറ്റേൺ മാറ്റുകയോ കൂടുതൽ വെരിഫിക്കേഷൻ ഘട്ടങ്ങൾ ചേർക്കുകയോ ചെയ്തേക്കാം, ഇത് adminhash= ചെക്കിനെ ബാധിച്ചേക്കാം. കോർ റിലീസ് നോട്ടുകൾ (core release notes) ശ്രദ്ധിക്കുക.
  • Playwright-ന്റെ സെലക്ടർ എഞ്ചിൻ മാറിക്കൊണ്ടിരിക്കും; UI ഡിസൈനിൽ മാറ്റം വന്നാലും "text=I'll wait" എന്ന ടെക്സ്റ്റ് സെലക്ടർ ബട്ടനുമായി പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക.
  • നിങ്ങൾ ഒരുപാട് സൈറ്റുകൾ കൈകാര്യം ചെയ്യുന്നുണ്ടെങ്കിൽ, കോഡ് ആവർത്തിക്കുന്നത് ഒഴിവാക്കാൻ ഈ ബൈപാസ് ലോജിക് ഒരു ഷെയർഡ് ലൈബ്രറിയിൽ കേന്ദ്രീകരിക്കാൻ പരിഗണിക്കുക.

അഡ്മിൻ-ഇമെയിൽ കൺഫർമേഷൻ പേജ് കൃത്യമായി കൈകാര്യം ചെയ്യുന്നതിലൂടെ, ഡെവലപ്പർമാർക്ക് ഇടയ്ക്കിടെ ഉണ്ടാകുന്ന ടൈമൗട്ടുകളെ തടസ്സങ്ങളായല്ല, മറിച്ച് തങ്ങളുടെ Playwright സ്ക്രിപ്റ്റുകളുടെ ഒരു സാധാരണ ഭാഗമായി മാറ്റാൻ സാധിക്കുന്നു. ഇത് പ്ലാറ്റ്‌ഫോം അപ്രതീക്ഷിതമായ സുരക്ഷാ പ്രോംപ്റ്റുകൾ നൽകിയാലും WordPress ഓട്ടോമേഷൻ വിശ്വസനീയമായി നിലനിർത്താൻ സഹായിക്കുന്നു.

Source: https://dev.to/susumun/browser-based-updates-getting-stuck-on-the-confirm-your-admin-email-screen-why-playwright-6io