> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/da/vejledninger/secrets/fill-a-template.md).

# Udfyld en konfigurationsfil ud fra en skabelon

Generer en konfigurationsfil fra en skabelon med devo-referencer, med devo secret inject, til værktøjer der ikke kan læse hemmeligheder fra miljøet.

Nogle værktøjer læser kun deres indstillinger fra en fil, såsom `appsettings.json`, en YAML-konfiguration eller en `.npmrc`. Med `devo secret inject` beholder De en skabelon med `devo://`-referencer i lageret og genererer den rigtige fil når De har brug for den.

{% hint style="warning" %}
Filen som `devo secret inject` opretter, indeholder hemmelighederne i klartekst. Brug den kun, når værktøjet ikke kan hente sine hemmeligheder fra miljøet, slet den når De er færdig, og commit den aldrig. Hvis værktøjet kan læse miljøvariabler, så brug [devo secret run](/cli/da/vejledninger/secrets/run-with-secrets.md) i stedet. Værdierne rører så aldrig disken.
{% endhint %}

## Skriv skabelonen

Sæt en reference dér hvor en hemmelighed skal stå. Ombryd den med `{{ }}` så Devolutions CLI ved præcis hvor den starter og slutter.

```json
{
  "Database": {
    "User": "{{ devo://ws/<workspace-id>/vault/<vault-id>/entry/<entry-id>/field/username }}",
    "Password": "{{ devo://ws/<workspace-id>/vault/<vault-id>/entry/<entry-id>/field/password }}"
  }
}
```

En reference uden `{{ }}` virker også. Den slutter ved det første mellemrum, anførselstegn, `<`, `>`, `)`, `]` eller `}`.

Inde i en reference erstattes `$NAME`, `${NAME}` og `${NAME:-default}` af værdien af en miljøvariabel, før referencen løses. Brug det til at dele én skabelon mellem miljøer, for eksempel `devo://ws/${WORKSPACE_ID}/vault/…`.

## Generer filen

```bash
devo secret inject --in-file appsettings.template.json --out-file appsettings.json
```

<table><thead><tr><th width="200">INDSTILLING</th><th>HVAD DEN GØR</th></tr></thead><tbody><tr><td><code>--in-file</code>, <code>-i</code></td><td>Skabelonen der skal læses. Uden den læser Devolutions CLI skabelonen fra standardinput.</td></tr><tr><td><code>--out-file</code>, <code>-f</code></td><td>Filen der skal skrives. Uden den går resultatet til standardoutput.</td></tr><tr><td><code>--force</code></td><td>Erstatter outputfilen hvis den allerede findes. Uden den stopper kommandoen før den læser nogen hemmelighed.</td></tr></tbody></table>

De kan også arbejde med pipes, for eksempel for at sende resultatet direkte til et andet program.

```bash
cat config.template.yaml | devo secret inject | <your-tool> --config -
```

{% hint style="warning" %}
Hvis en reference ikke kan løses, modtager det næste program i pipen oversigtslinjen `References: <resolved>/<total> resolved` i stedet for konfigurationen. I et script skal De kontrollere exitkoden for `devo secret inject`, eller skrive til en fil med `--out-file`.
{% endhint %}

## Hvad De kan stole på

* **Alt eller intet.** Hvis en reference ikke kan løses, skriver Devolutions CLI ingen fil og intet af skabelonen. Den viser fejlene på standardfejl, udskriver en oversigtslinje som `References: 1/2 resolved` på standardoutput og afsluttes med koden `1`.
* **Privat fil.** Outputfilen oprettes med private tilladelser. På macOS og Linux kan kun brugerkontoen læse den. På Windows Deres konto, systemkontoen og administratorer.
* **Ingen halvt skrevet fil.** Devolutions CLI skriver til en midlertidig fil i den samme mappe og flytter den derefter på plads.
* **Hver reference læses én gang.** En reference der bruges flere gange i skabelonen, løses én gang.

Med `--output json` returnerer kommandoen et resumé i stedet for indholdet. Hvor mange referencer den fandt og løste. Værdierne er ikke i det.

## Godt at vide

* Med standardoutput vises værdierne i terminalen eller i det der læser pipen. Foretræk `--out-file` når De ikke har brug for en pipe.
* Referencer løses gennem den aktuelle kontekst. Tilføj `--context <context-name>` for at bruge et andet arbejdsområde. Kanoniske referencer løses altid mod det arbejdsområde der ejer dem.
* En reference løses ikke. Se [En hemmelighedsreference løses ikke](/cli/da/hjaelp/troubleshooting/reference-does-not-resolve.md).

## Næste

* [Take the passwords out of a .env file](/cli/da/vejledninger/secrets/replace-env-files.md)
* [What stays hidden, and what doesn't](/cli/da/vejledninger/understand/security-model.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/da/vejledninger/secrets/fill-a-template.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
