Aller au contenu

Fichiers de configuration

vanityURLs garde les valeurs par défaut du produit, les choix propres à l’instance, les réglages locaux du poste et les artefacts runtime générés dans des fichiers séparés.

Utilisez cette page pour identifier les fichiers de configuration actuels et la forme de schéma que chacun suit. Le contrat exact reste les fichiers Git et les scripts dans le dépôt de code.

Configuration source

FichierFormatForme de schémaProprietaire
wrangler.tomlTOML, selon la configuration Cloudflare Wranglername, main, compatibility_date, workers_dev, preview_urls, [build], [assets], [vars], [[routes]], [observability]Instance
package.jsonManifeste npm JSONscripts, devDependencies, metadonnées du paquetProduit
package-lock.jsonLockfile npm JSONGraphe de dependances verrouille génère par npmProduit
defaults/v8s-site-config.jsonConfiguration de site vanityURLs JSON, schema_version: "1.0"Base produit pour i18n, links, et operatorProduit
custom/v8s-site-config.jsonConfiguration de site vanityURLs JSON, schema_version: "1.0"Surcharges d’instance pour i18n, links, operator, et branding; operator.operator_domain peut piloter le domaine par défaut des contactsInstance
defaults/v8s-links.txtTexte delimite par pipes avec blocs @schedule inline optionnelsslug|target|state|title|description|tags|owner|expires_at|notes, suivi de directives d’horaire indentées au besoinLiens de départ produit
custom/v8s-links.txtTexte delimite par pipes avec blocs @schedule inline optionnelsMeme format que defaults/v8s-links.txt; c’est la source de vérité rédigée par un humain pour les liensInstance
custom/v8s-schedules.jsonHoraire vanityURLs JSON héritéSource de compatibilité 3.x dépréciée lue par le build et la commande actuelle lnk schedule; les blocs @schedule inline ont prioritéInstance
defaults/v8s-policies.jsonPolitique vanityURLs JSON, schema_version: "1.0"defaults, allow_domains, blocked_keywords, block_domains, generated_sources optionnelProduit
custom/v8s-policies.jsonPolitique vanityURLs JSON, schema_version: "1.0"Meme format que defaults/v8s-policies.json; la politique custom remplace la politique source par défaut avant la fusion des feeds génèresInstance
defaults/v8s-blocklist-categories.jsonTaxonomie de politique vanityURLs JSON, schema_version: "1.0"categories, severities, sourcesProduit
custom/v8s-blocklist-categories.jsonTaxonomie de politique vanityURLs JSON, schema_version: "1.0"Extension ou surcharge optionnelle des categories, sevérités et sources de blocklist généréeInstance
defaults/v8s-language-metadata.jsonMétadonnées de langue vanityURLs JSONLibellés produit pour les listes de pages localisées générées et la navigation des pages d’étatProduit
defaults/legal/v8s-legal-content.jsonContenu légal vanityURLs JSONContenu par défaut des pages légales, Confiance et sécurité, sécurité et délais de réponse rendus par le buildProduit
defaults/v8s-local-config.jsonConfiguration locale vanityURLs JSON, schema_version: "1.0"shell_helper, lnk_cli, local_publish, registry, repositoryProduit
custom/v8s-local-config.jsonConfiguration locale vanityURLs JSON, schema_version: "1.0"Chemins du helper propres au poste et réglages de publication locale écrits par npm run local-installPoste
defaults/public/_headersRegles d’en-têtes pour assets statiques CloudflareMotif de chemin suivi de lignes d’en-têtes indenteesProduit ou surcharge d’instance

Anciens noms de fichiers blocklist Modifié en 3.0.0

Les anciens custom/v8s-blocklist.json et defaults/v8s-blocklist.json peuvent encore être reconnus pour compatibilite de migration, mais les nouvelles instances devraient utiliser v8s-policies.json.

Configuration du site

custom/v8s-site-config.json est le principal fichier de setup écrit par npm run setup. Il stocke les réglages de site propres à l’instance, dont les langues, la marque, les contacts opérateur, le mode des pages légales et les surcharges de la CLI de liens. La liste exacte des champs est définie par defaults/v8s-site-config.json et l’installateur. Le build fusionne en profondeur la configuration de site par défaut et custom, donc les valeurs par défaut additives peuvent arriver par defaults/ sans réécrire votre fichier custom. Les sections principales importantes sont :

SectionRôle
schema_versionVersion du contrat de configuration stocké. Elle change seulement lorsqu’un fichier custom existant doit migrer
i18nLangue par défaut et langues supportées
linksSurcharges optionnelles pour la longueur des slugs générés, l’alphabet lisible et les longueurs par tag pour lnk
operatorIdentité opérateur, contacts, fuseau horaire, mode des pages légales, divulgation analytics et fenêtre de réponse
brandingDomaine court, slogan public, drapeau de copie des pages publiques et wordmark en deux couleurs

Exemple :

{
  "schema_version": "1.0",
  "i18n": {
    "default_language": "en",
    "supported_languages": ["en", "fr"]
  },
  "links": {
    "random_slug_length": 3,
    "random_slug_alphabet": "34789abcdefghjkmnpqrstvwxy",
    "tag_random_slug_lengths": {
      "training": 4,
      "debug": 2
    }
  },
  "operator": {
    "legal_name": "Example Inc.",
    "short_domain": "example.link",
    "operator_domain": "example.com",
    "abuse_contact": "abuse@example.com",
    "security_contact": "security@example.com",
    "timezone": "America/Toronto",
    "abuse_response_window": "5 business days",
    "legal_pages_enabled": false
  },
  "branding": {
    "domain": "example.link",
    "slogan": {
      "en": "A short-link service for Example Inc.'s projects",
      "fr": "Un service de liens courts pour les projets de Example Inc."
    },
    "custom_public": true,
    "wordmark": {
      "black": "example.",
      "green": "link"
    }
  }
}

Des champs additifs peuvent apparaitre sans changer schema_version. Les changements de version de schéma sont réserves aux changements incompatibles de configuration stockee qui demandent une migration; la décision est consignée dans les ADR du dépôt de code. Les champs additifs sont suivis dans docs/schema-changelog.md du dépôt de code.

Ne modifiez pas les fichiers générés

Ne modifiez pas les fichiers générés dans build/. Modifiez custom/, puis reconstruisez avec npm run check.

Configuration générée

FichierFormatForme de schémaGenere par
build/v8s.jsonRegistre runtime JSON, schema_version: "3.0"generated_at, generated_timezone, default_state, routing, tree, links[]; chaque lien contient slug, match, target, state, les metadonnées et un schedule optionnelscripts/build-redirect-targets.mjs
build/v8s-blocklist.jsonPolitique runtime JSON, schema_version: "1.0"defaults normalises, allow_domains, blocked_keywords, block_domains fusionnesscripts/build.mjs
build/v8s-site-config.jsonConfiguration de site runtime JSON, schema_version: "1.0"Configuration de site effective après fusion des valeurs par défaut et customscripts/build.mjs
build/blocklist.generated.jsonFeed de politique génère JSON, schema_version: "1.0"generated_at, sources[], block_domains[] génèresnpm run generate:blocklist
build/v8s-release-manifest.jsonManifeste de release JSON, schema_version: "1.0"Version du package, commit Git, date de compatibilité Cloudflare, versions de schéma et hashs SHA-256 des entrées et sorties de releasescripts/generate-release-manifest.mjs
src/worker.mjsModule Worker génèreSource Worker copiee depuis scripts/workers/worker.mjs avec constantes de langues généréesscripts/build.mjs
src/lib/analytics-policy.mjsModule de support Worker génèrePolitique de détection des bots analytics copiee depuis scripts/workers/lib/analytics-policy.mjsscripts/build.mjs

Les fichiers générés sont des sorties de build

Les fichiers génères sont des sorties de build. Ne les modifiez pas directement.

Ordre de surcharge publique

Le build des assets publics est détérministe :

  1. copier defaults/public/ dans build/
  2. appliquer custom/public/ lorsqu’il existe
  3. copier le defaults/public/_stats/index.html par défaut
  4. appliquer custom/public/_stats/index.html lorsqu’il existe
  5. retirer les répertoires de langues non supportées selon v8s-site-config.json
  6. construire v8s.json, v8s-blocklist.json, et v8s-site-config.json
  7. génèrer src/ depuis scripts/workers/ pour Wrangler

Artefacts runtime

Le Worker ne lit pas v8s-links.txt à chaque requête. Le build crée les artefacts runtime depuis les fichiers source, les valide, puis les deploie avec les assets Worker.

Les entrées de build incluent :

  • defaults/v8s-links.txt, remplace par custom/v8s-links.txt quand present, avec les blocs @schedule inline
  • custom/v8s-schedules.json si present comme source de compatibilité 3.x dépréciée
  • defaults/v8s-policies.json, remplace par custom/v8s-policies.json quand present
  • defaults/v8s-site-config.json, avec custom/v8s-site-config.json fusionne pour les choix de site
  • les assets statiques de defaults/public/, surcharges par custom/public/
  • les données de feeds générées par npm run generate:blocklist

Le build écrit :

ArtefactRole
build/v8s.jsonRegistre de redirection consomme par le Worker
build/v8s-blocklist.jsonArtefact de politique runtime consomme par le Worker
build/v8s-site-config.jsonConfiguration de site utilisee par le build
src/worker.mjsEntree Worker générée depuis scripts/workers/ pour Wrangler

scripts/workers/ est la source de vérité du Worker. src/ est une sortie générée. Les requêtes publiques directes vers les fichiers runtime bruts comme /v8s.json, /v8s-blocklist.json, et /v8s-site-config.json devraient retourner 404.

Modifier cette page Dernière modification: