Validare un nome di variabile di ambiente POSIX
Verifichi se il nome di una variabile d'ambiente è portabile prima che rompa un rilascio: DATABASE_URL è valido, mentre un nome che inizia con una cifra o contiene un trattino fallisce indicando la regola violata. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- DATABASE_URL
- Nome
- DATABASE_URL
- Convenzione
- POSIX
I nomi delle variabili di ambiente sembrano semplici finché una distribuzione non fallisce per una cifra iniziale, un trattino, uno spazio o un carattere non portabile. Questo validatore controlla un nome secondo la convenzione POSIX: ammette lettere ASCII, cifre e trattini bassi, ma il primo carattere deve essere una lettera o un trattino basso. Un nome valido riceve una conferma chiara; in caso contrario, il messaggio indica la regola violata. Lei può quindi usarlo in editor, moduli, controlli CI e generatori di configurazione.
Che cosa accetta il validatore
Un nome portabile usa intenzionalmente un insieme ristretto di caratteri. Il primo deve essere una lettera ASCII da A a Z o da a a z, oppure un trattino basso. Nei caratteri successivi sono ammesse anche le cifre da 0 a 9.
Pertanto DATABASE_URL, HOME, _INTERNAL_FLAG e API2_TOKEN superano il controllo. Il validatore esamina l'intera stringa senza correggerla, normalizzarla o rimuovere spazi. Questo comportamento rigoroso impedisce che una pulizia automatica trasformi il valore fornito da Lei in un identificatore diverso.
Maiuscole e minuscole vengono conservate e sono significative: PATH e Path sono nomi distinti. Il controllo riguarda solo la sintassi portabile; non stabilisce se la variabile esista, sia esportata, abbia un valore o sia supportata da un particolare programma. La risposta positiva restituisce il nome originale, l'indicatore di validità e una breve conferma.
Come vengono spiegati i nomi non validi
Ogni tipo di errore riceve una spiegazione specifica, così Lei può correggere il problema effettivo. Una stringa vuota fallisce perché manca il carattere iniziale. Un nome che inizia con una cifra viola la regola dedicata alla prima posizione, anche se le cifre sono lecite in seguito.
Un trattino, un punto, uno spazio o una lettera non ASCII all'inizio viene ugualmente rifiutato. Se l'inizio è valido ma compare più avanti un carattere vietato, il messaggio identifica quel carattere e la sua posizione, contando da 1. Un'assegnazione come NAME=value non viene scambiata per un nome: anche il segno uguale è rifiutato.
Uso nei flussi di sviluppo
Il controllo si inserisce ovunque un nome venga acquisito prima che la configurazione raggiunga una shell o l'ambiente di un processo. Un modulo di distribuzione può convalidare una chiave al momento dell'invio e mostrare la regola da correggere. Un generatore può respingere chiavi errate prima di creare un file dotenv, un manifesto di container, una definizione di servizio o una mappa di segreti CI.
I linter possono applicare la stessa regola a modelli ed esempi. La correttezza sintattica non assicura la compatibilità con ogni strumento, che potrebbe riservare prefissi o imporre ulteriori convenzioni.
Casi d'uso
Convalidare le impostazioni di distribuzione
Controlli i nomi prima di salvare configurazioni che l'ambiente di esecuzione potrebbe non esporre correttamente.
Proteggere i generatori dotenv
Rifiuti chiavi malformate prima di produrre un file che fallirebbe soltanto all'avvio dell'applicazione.
Aggiungere un controllo dei nomi alla CI
Verifichi modelli e nomi documentati con una regola deterministica durante i controlli del repository.
Domande frequenti
Quali caratteri sono consentiti?
Sono ammesse lettere ASCII, cifre e trattini bassi. Il primo carattere deve essere una lettera ASCII o un trattino basso.
Un nome può iniziare con una cifra?
No. Le cifre sono ammesse solo dopo il primo carattere: 2FA_TOKEN fallisce, mentre TOKEN_2FA passa.
Il controllo verifica se la variabile esiste?
No. Convalida solo il nome proposto; non legge l'ambiente e non verifica esportazioni o assegnazioni.
I nomi in minuscolo sono validi?
Sì. Le lettere ASCII maiuscole e minuscole sono valide e l'uso originale viene conservato.
Lo strumento corregge o ripulisce un nome non valido?
No. Il testo viene controllato per intero così come lo ha scritto, senza togliere spazi né riparare caratteri, perché una pulizia silenziosa potrebbe trasformare il suo nome in un altro. L'errore le dice invece quale regola è fallita e dove.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/env-var-name-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"DATABASE_URL"}'const res = await fetch("https://api.kit.forhosting.com/dev/env-var-name-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "DATABASE_URL"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/env-var-name-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "DATABASE_URL"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/env-var-name-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"DATABASE_URL"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"DATABASE_URL"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/env-var-name-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "DATABASE_URL"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.env_var_name_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come vengono spiegati i nomi non validi
Per esempio, API-KEY fallisce sul trattino e API KEY sullo spazio. Gli errori tipizzati usano invalid_input, permettendo ai client API di distinguere un dato correggibile da un guasto interno.
Uso nei flussi di sviluppo
L'algoritmo non usa la rete, non legge l'ambiente, non conserva l'input e non dipende dall'ora o dalla casualità; il risultato è quindi identico nel browser, nei test e tramite API. Una richiesta API costa $0.002.
Domande tecniche
Trattini e punti sono consentiti?
No. Trattino, punto, spazio, segno uguale o altro carattere non portabile produce invalid_input.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo stesso controllo deterministico può essere eseguito anche nel browser.