Validare nomi feature flag
Inserisca il nome di una flag e scopra subito se rispetta la convenzione: enable-checkout-express è valido, con il prefisso enable e tre segmenti in minuscolo. Maiuscole, separatori misti o una parola isolata falliscono con l'elenco dei motivi. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Nome
- enable-checkout-express
- Stile
- kebab
- Prefisso
- enable
- Segmenti
- enable, checkout, express
- Numero di segmenti
- 3
I feature flag (detti anche toggle, gate o kill switch) restano gestibili solo se ogni nome segue una convenzione condivisa. Mescolare maiuscole, residui di camelCase, acronimi casuali e flag senza prefisso di verbo o area rende difficile la ricerca, rompe i pannelli e provoca collisioni tra team.
Cosa richiede la convenzione di nomenclatura
Un nome di feature flag sotto questa convenzione è un identificatore macchina breve, non prosa libera. Mescolare trattini e underscore nello stesso nome è un fallimento duro, così come qualsiasi maiuscola, spazio, slash o altra punteggiatura. Terzo, il nome deve dividersi in almeno due segmenti non vuoti così che una parola isolata come checkout non finisca mai in produzione come flag; i team servono un prefisso più un corpo descrittivo.
Quarto, il primo segmento deve essere un prefisso descrittivo noto dai cataloghi comuni: enable, disable, show, hide, allow, deny, use, is, has, can, feature, ff, exp, experiment, rollout, beta, alpha, new, legacy, dark, light, ops, ui, api, web, mobile, backend, frontend, gate, toggle, flag, release, kill, killswitch, perm o temp. Quinto, la lunghezza è limitata a sessantaquattro caratteri per restare amichevole con store di configurazione, variabili d'ambiente e parametri di query URL. Separatori iniziali, finali o raddoppiati sono rifiutati così che il codice generato e i filtri regex restino semplici.
Contratto di input, forma della risposta ed errori
Il valore di esempio enable-checkout-express è un flag kebab-case valido con il prefisso enable. Quando il nome rispetta tutte le regole, valid è true, issues è un array vuoto e style è kebab o snake. I numeri sono convertiti in stringhe; oggetti e array sono rifiutati.
Poiché l'implementazione è parse pura di livello A, i risultati sono stabili tra runtime, senza rete né timestamp.
Casi d'uso
Script di migrazione e pulizia
Controlli in batch flag legacy in camelCase o UPPER_SNAKE ed emetta un elenco di issues leggibile da macchina per ogni candidato al rinominare.
Domande frequenti
Cosa succede se il nome è vuoto?
Nomi vuoti o solo spazi non possono essere valutati rispetto alla convenzione.
Quali prefissi descrittivi sono consentiti?
Prefissi comuni di catalogo come enable, disable, show, hide, feature, ff, exp, experiment, rollout, beta, api, ui, gate, toggle, release, kill e marcatori di area o intento simili elencati dal controllo.
Posso mescolare trattini e trattini bassi nello stesso nome?
No. Ogni nome usa un solo stile di separatore dall'inizio alla fine: trattini oppure trattini bassi, mai entrambi. Mescolarli è un errore netto, come una maiuscola, uno spazio, una barra o qualsiasi segno di punteggiatura.
Perché una sola parola come checkout viene rifiutata?
Perché la convenzione richiede almeno due segmenti non vuoti: un prefisso noto, come enable o rollout, e una parte descrittiva. Una parola isolata non dice che tipo di interruttore sia né a quale area del prodotto appartenga.
Quanti caratteri può avere il nome di una flag?
Fino a 64. Il limite mantiene i nomi pratici nei file di configurazione, nelle variabili d'ambiente e negli indirizzi web. Anche i separatori all'inizio, alla fine o doppi vengono rifiutati.
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/feature-flag-name-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"enable-checkout-express"}'const res = await fetch("https://api.kit.forhosting.com/dev/feature-flag-name-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "enable-checkout-express"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/feature-flag-name-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"name": "enable-checkout-express"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/feature-flag-name-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"name":"enable-checkout-express"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"name":"enable-checkout-express"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/feature-flag-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
{
"name": "enable-checkout-express"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.feature_flag_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
Questa capacità convalida un nome candidato rispetto a uno schema pratico di settore: non vuoto, tutto in minuscolo, in kebab-case con trattini o in snake_case (mai entrambi i separatori nella stessa stringa), almeno due segmenti, prefisso descrittivo come enable, feature, ff, rollout o beta, al massimo sessantaquattro caratteri e senza separatori ai bordi né consecutivi. L'input vuoto fallisce con invalid_input e non viene addebitato. Le violazioni di convenzione restituiscono un payload di successo con valid impostato a false e un elenco ordinato di issues così che l'integrazione continua possa far fallire la build con un report chiaro.
Cosa richiede la convenzione di nomenclatura
Primo, non deve essere vuoto né solo spazi: un nome vuoto viene rifiutato subito come invalid_input perché non c'è nulla di utile da valutare. Secondo, ogni carattere deve essere lettera ASCII minuscola, cifra ed esattamente uno stile di separatore: trattini per il kebab-case oppure underscore per lo snake_case. Insieme, queste regole si allineano a chiavi in stile LaunchDarkly, toggle Unleash e alla maggior parte dei file JSON o YAML interni senza inventare un dialetto di un solo fornitore.
Contratto di input, forma della risposta ed errori
In caso di successo la risposta include sempre valid (booleano), il name dopo trim, style (kebab, snake o null se il pattern non è classificato), prefix (primo segmento o null), segments come array ordinato di stringhe, segment_count, has_descriptive_prefix, issues come elenco stabile e ordinato di codici leggibili da macchina, e una breve frase convention adatta all'interfaccia. Quando il nome è presente ma viola la convenzione, valid è false e issues elenca codici come not_lowercase, mixed_separators, missing_descriptive_prefix, too_few_segments, invalid_characters, consecutive_separators, leading_or_trailing_separator, too_long, missing_separator_segments o invalid_pattern—senza lanciare eccezioni—così linter e bot di pull request stampano tutti i problemi in una volta. Solo nomi vuoti, assenti o non stringa lanciano invalid_input; tali fallimenti non consumano il saldo prepagato.
Dove la convalida dei nomi di flag dà valore
I team di piattaforma e di developer experience collegano questo controllo ai generatori di scaffolding affinché non entrino flag nuovi senza prefisso né stile di separatore. I job di integrazione continua scansionano le pull request che toccano cataloghi di flag o file di ambiente di esempio e fanno fallire la build quando un nome confonderebbe gli operatori mesi dopo. Gli strumenti di product analytics e di sperimentazione usano le stesse regole registrando le chiavi di rollout così che i dashboard raggruppino per prefisso in modo coerente su mobile, web e backend. I bot di code review chiamano l'API con una stringa candidata e incollano l'elenco di issues nel thread di revisione invece di discutere lo stile a gusto. Poiché ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello, Lei può convalidare migliaia di nomi in uno script di migrazione senza spese a sorpresa; gli invii vuoti restano gratuiti come errori del client. Allinei la tabella dei prefissi allo stile della Sua organizzazione mappando i verbi interni sull'insieme supportato, oppure avvolga questo endpoint e rifiuti qualsiasi prefisso che la Sua policy vieta anche se la convenzione di base passa.
Casi di integrazione
Lint CI per cataloghi di flag
Analizzi file YAML o JSON di flag nelle pull request e faccia fallire la build se un nome è vuoto, mescola le maiuscole o manca di prefisso descrittivo.
Scaffolding e generatori CLI
Convalidi il nome digitato da uno sviluppatore prima di scrivere enable-foo-bar in configurazione, stub SDK o dashboard di feature toggle.
Domande tecniche
Cos'è un nome di feature flag valido?
Una stringa non vuota in minuscolo in kebab-case o snake_case, almeno due segmenti, primo segmento un prefisso descrittivo (ad esempio enable, feature o ff), massimo 64 caratteri, senza mescolare separatori.
Sono accettati nomi camelCase o PascalCase?
No. Le maiuscole producono not_lowercase nell'elenco di issues e valid è false. Converta prima in kebab-case o snake_case.
Quanto costa il validatore di nomi di feature flag?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'input vuoto non valido non viene addebitato.