Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l’infrastruttura enterprise.
Blueprint pronti da copiare e incollare per i linguaggi e i casi d’uso più comuni. Combinali per comporre la tua configurazione completa. Gli esempi usano Bash su Linux; sostituisci host, ambiti e comandi di esempio con i tuoi.Per una descrizione dettagliata di ogni campo, consulta il riferimento del blueprint.
Segreti: configura i segreti indicati nella scheda Segreti all’interno di ciascun editor dei blueprint. I passaggi di build ricevono i segreti del blueprint applicabili. Durante una sessione, assicurati che ogni comando riceva i segreti di cui ha bisogno: i segreti con ambito repo richiedono binding espliciti dell’ambiente exec, ad esempio env={"REGISTRY_TOKEN": "secret:repo:owner/repo:REGISTRY_TOKEN"}. Consulta Secrets. Non inserire mai credenziali in modo hardcoded nel tuo blueprint.
I passaggi di build non sono hook di avvio della sessione.initialize e maintenance vengono eseguiti durante la creazione degli snapshot; maintenance non viene eseguito automaticamente all’avvio della sessione. knowledge fornisce istruzioni a Devin, non hook eseguibili.Tieni le credenziali fuori dai file persistenti, incluso $ENVRC. La pulizia degli snapshot rimuove i file di segreti iniettati da Devin, non i file arbitrari creati dai tuoi comandi. Usa i riferimenti letterali a variabili supportati dallo strumento che li utilizza, oppure passa le credenziali nell’ambiente del comando. Quando uno strumento richiede file di credenziali, creali per una singola operazione ed eliminali prima che si concluda. Ripeti esplicitamente questa configurazione quando serve nel corso di una sessione.
Blueprint essenziali per le configurazioni più comuni. Copiane uno, incollalo nell’editor dei blueprint e il gioco è fatto.
Progetto Node.js
initialize: | npm install -g pnpmmaintenance: | pnpm installknowledge: - name: lint contents: | Esegui `pnpm lint` per verificare eventuali errori. - name: test contents: | Esegui `pnpm test` per la suite completa.
Progetto Python
initialize: | curl -LsSf https://astral.sh/uv/install.sh | shmaintenance: | uv syncknowledge: - name: lint contents: | Esegui `uv run ruff check .` per il linting. - name: test contents: | Esegui `uv run pytest` per la suite completa.
initialize: | nvm install 20 nvm use 20maintenance: | npm installknowledge: - name: lint contents: | npx eslint . - name: test contents: | npm test - name: build contents: | npm run build
Usa npm install (non npm ci) in maintenance. Esegue un aggiornamento incrementale, mentre npm ci elimina node_modules e reinstalla tutto da zero a ogni esecuzione del comando.
Rust (tramite rustup) e Cargo sono preinstallati nell’immagine di base di Devin. Salta il passaggio di installazione se la toolchain stabile predefinita è sufficiente. Devi solo scaricare le dipendenze.
Monorepo con frontend Node.js e backend Python. Ogni sottoprogetto ha le proprie voci di Knowledge.
initialize: - name: Install pnpm run: npm install -g pnpm - name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | shmaintenance: - name: Install frontend dependencies run: (cd packages/frontend && pnpm install) - name: Install backend dependencies run: (cd packages/backend && uv sync) - name: Build shared library run: (cd packages/shared && pnpm install && pnpm build)knowledge: - name: structure contents: | Questo è un monorepo con tre package: - `packages/frontend` — app React (TypeScript, pnpm) - `packages/backend` — API Python (FastAPI, uv) - `packages/shared` — utilità TypeScript condivise (da buildare prima del frontend) - name: frontend contents: | Esegui `cd packages/frontend && pnpm dev` per avviare il server di sviluppo. Esegui `cd packages/frontend && pnpm lint` per eseguire il lint. Esegui `cd packages/frontend && pnpm test` per eseguire i test. - name: backend contents: | Esegui `cd packages/backend && uv run uvicorn app.main:app --reload` per avviare l'API. Esegui `cd packages/backend && uv run ruff check .` per eseguire il lint. Esegui `cd packages/backend && uv run pytest` per eseguire i test.
Usa le subshell (cd dir && command) invece di cd dir && command, così la directory di lavoro viene reimpostata tra un passaggio e l’altro.
Un monorepo Java in cui servizi diversi richiedono versioni diverse del JDK. Installa entrambi i JDK durante la configurazione, poi usa le voci di knowledge per indicare a Devin quale JAVA_HOME usare per ciascun servizio.
initialize: - name: Install JDK 17 (primary) run: | sudo apt-get update -qq sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \ | sudo tee /etc/profile.d/java.sh > /dev/null - name: Install JDK 11 (legacy service) run: | sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-11-jdk-headlessmaintenance: - name: Warm dependency caches run: | export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 (cd services/api && ./gradlew dependencies --refresh-dependencies) export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 (cd services/legacy && ./gradlew dependencies --refresh-dependencies)knowledge: - name: build_api contents: | Esegui la build del servizio API (JDK 17): JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \ cd services/api && ./gradlew clean build - name: build_legacy contents: | Esegui la build del servizio legacy (JDK 11): JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 \ cd services/legacy && ./gradlew clean build - name: test_all contents: | Esegui i test per tutti i servizi: JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \ (cd services/api && ./gradlew test) JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 \ (cd services/legacy && ./gradlew test)
Configura i gestori di pacchetti in modo che risolvano le dipendenze dai registry privati. Imposta questi valori in Settings > Environment > Blueprints > Org-wide setup (oppure sul singolo repo, se serve solo a uno).
Memorizza i riferimenti, non le credenziali espanse. I delimitatori heredoc tra apici, come <<'EOF', preservano i riferimenti alle variabili all’interno del file. npm, Yarn Berry, Maven e Gradle sono in grado di risolvere i riferimenti mostrati di seguito al momento dell’esecuzione. pip non espande le variabili di shell in pip.conf: in quel caso usa le variabili d’ambiente. I file di setup della shell devono essere caricati esplicitamente con source nello stesso comando dello strumento; non dare per scontato che una nuova shell li carichi o aggiorni le credenziali.Gli URL scritti direttamente in configurazioni persistenti, come un indice Cargo, un mirror Docker o un mirror APT, non devono contenere credenziali. Mantieni l’authentication nei segreti separati mostrati in ciascun template.Se hai usato un template più vecchio che scriveva le credenziali su disco, rimuovi quei file ed esegui il rebuild da una base pulita, non da uno snapshot che le contiene. Ruota le credenziali che potrebbero essere state acquisite.
Se il tuo registry privato usa una CA corporate, assicurati di installare prima il certificato CA a livello enterprise. La configurazione seguente presuppone che l’attendibilità HTTPS sia già stabilita.
Configura npm per risolvere i pacchetti con ambito (ad es. @myorg/*) da un registry privato, mentre i pacchetti pubblici continuano a provenire dal registry npm predefinito.
Segreti richiesti
GITHUB_PACKAGES_TOKEN — Token di accesso personale o token GitHub App con ambito read:packages
maintenance: - name: Configure npm scoped registry run: | npm config set @myorg:registry https://npm.pkg.github.com npm config set //npm.pkg.github.com/:_authToken '${GITHUB_PACKAGES_TOKEN}'
Sostituisci @myorg con il tuo scope npm. URL comuni dei registry privati:
Instrada tutti i pacchetti npm attraverso il tuo registry privato (non solo i pacchetti con ambito).
Segreti richiesti
NPM_REGISTRY_URL — URL completo del tuo registry npm (ad es. https://artifactory.example.com/artifactory/api/npm/npm-virtual)
NPM_REGISTRY_HOST — Solo hostname, senza protocollo (ad es. artifactory.example.com)
REGISTRY_TOKEN — Token di autenticazione npm per il registry
maintenance: - name: Configure npm to use private registry run: | npm config set registry '${NPM_REGISTRY_URL}' npm config set "//${NPM_REGISTRY_HOST}/:_authToken" '${REGISTRY_TOKEN}' npm config set strict-ssl true
Configura pnpm per risolvere i pacchetti da un registry privato.
Segreti richiesti
NPM_REGISTRY_URL — URL completo del tuo registry npm
NPM_REGISTRY_HOST — Solo hostname, senza protocollo
REGISTRY_TOKEN — Token di autenticazione npm per il registry
initialize: - name: Install pnpm run: npm install -g pnpmmaintenance: - name: Configure pnpm for private registry run: | npm config set registry '${NPM_REGISTRY_URL}' npm config set "//${NPM_REGISTRY_HOST}/:_authToken" '${REGISTRY_TOKEN}'
Configura Yarn (Classic v1 o Berry v2+) per risolvere i pacchetti da un registry privato.
Segreti richiesti
NPM_REGISTRY_URL — URL completo del tuo registry npm/Yarn
REGISTRY_TOKEN — Token di autenticazione per il registry
Yarn Classic (v1):
initialize: - name: Install Yarn Classic run: npm install -g yarnmaintenance: - name: Configure Yarn for private registry run: | npm config set registry '${NPM_REGISTRY_URL}' npm config set //registry.example.com/:_authToken '${REGISTRY_TOKEN}'
Sostituisci registry.example.com con l’host del tuo registry. Yarn Classic legge il file .npmrc di npm.Yarn Berry (v2+):
maintenance: - name: Configure Yarn Berry for private registry run: | yarn config set npmRegistryServer '${NPM_REGISTRY_URL}' yarn config set npmAuthToken '${REGISTRY_TOKEN}' # Per i pacchetti con ambito: # yarn config set npmScopes.myorg.npmRegistryServer "https://npm.pkg.github.com" # yarn config set npmScopes.myorg.npmAuthToken '${GITHUB_PACKAGES_TOKEN}'
Configura pip e uv per recuperare i pacchetti dal tuo registry PyPI privato (ad es. Nexus, Artifactory).
Segreti richiesti
PYPI_REGISTRY_URL — URL completo del tuo indice PyPI, incluse le credenziali se richieste (ad es. https://user:token@nexus.example.com/repository/pypi-proxy/simple)
Per precaricare le dipendenze durante un build, aggiungi lo stesso comando source ... && a maintenance dopo il passaggio di configurazione. Codifica in percent-encoding i caratteri speciali nelle credenziali dell’URL.
Per l’installazione delle dipendenze, dichiara anche la sorgente del pacchetto private nel pyproject.toml del tuo progetto. poetry config repositories.private configura il repository di pubblicazione; le credenziali dell’ambiente si applicano al nome della sorgente corrispondente.
Installa il JDK e configura Maven in modo che tutta la risoluzione delle dipendenze passi attraverso il tuo registry privato (ad es., Artifactory, Nexus).
JDK 17 è preinstallato nell’immagine di base di Devin. Salta il passaggio di installazione se l’OpenJDK 17 predefinito è sufficiente. Ti servono solo l’installazione di Maven e la configurazione del registry.
Segreti richiesti
MAVEN_REGISTRY_URL — URL del tuo registry Maven (ad es., https://artifactory.example.com/artifactory/maven-virtual)
Installa Go e configuralo per risolvere i moduli tramite un proxy di moduli privato (ad es. Athens, Artifactory o un endpoint GOPROXY).
Segreti richiesti
GO_PROXY_URL — URL del tuo proxy di moduli Go (ad es. https://athens.corp.internal)
Collega il Git provider e concedi l’accesso ai repository che ospitano i tuoi moduli privati tramite le integrazioni Git. Usa normali git URL HTTPS con l’authentication configurata di Devin. Non incorporare un token in una riscrittura del git URL.
initialize: - name: Install Go run: | GO_VERSION=1.23.5 ARCH=$(dpkg --print-architecture) curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz" \ | sudo tar -xz -C /usr/local echo 'export PATH="/usr/local/go/bin:$HOME/go/bin:$PATH"' \ | sudo tee /etc/profile.d/golang.sh > /dev/null - name: Configure Go for private modules run: | cat << 'GOENV' | sudo tee /etc/profile.d/go-private.sh > /dev/null export GOPROXY="$GO_PROXY_URL,direct" export GONOSUMCHECK="corp.internal/*,github.com/myorg/*" export GOPRIVATE="corp.internal/*,github.com/myorg/*" GOENVknowledge: - name: private_go_modules contents: | From the repository root, with GO_PROXY_URL available, run: source /etc/profile.d/go-private.sh && go mod download
Per precaricare la cache dei moduli durante le build, aggiungi quel comando alla sezione maintenance del blueprint del repository, dove go.mod è disponibile. Non eseguirlo nell’org-wide setup, che viene eseguito prima della clonazione dei repo.
Configura NuGet per risolvere i package da un feed privato.
Segreti richiesti
NUGET_SOURCE_URL — URL del tuo feed NuGet
NuGetPackageSourceCredentials_private — Credenziali del feed nel formato environment di NuGet: Username=any;Password=<PAT> (usa lo username richiesto dal tuo feed)
initialize: - name: Install .NET SDK run: | curl -fsSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 8.0 echo 'export PATH="$HOME/.dotnet:$PATH"' \ | sudo tee /etc/profile.d/dotnet.sh > /dev/nullmaintenance: - name: Configure NuGet for private feed run: | dotnet nuget add source "$NUGET_SOURCE_URL" \ --name private 2>/dev/null || \ dotnet nuget update source private \ --source "$NUGET_SOURCE_URL"knowledge: - name: private_nuget_packages contents: | Run dotnet restore with NuGetPackageSourceCredentials_private in its environment. The suffix must match the source name "private".
Docker
Configura Docker per effettuare il pull da un container registry privato.Il login di Docker può scrivere le credenziali nella propria directory di configurazione. Usa una directory isolata per ogni operazione e rimuovila anche se il pull non riesce. Ripeti la sequenza di login e pull ogni volta che ti serve un’altra image nella stessa sessione.
Segreti richiesti
DOCKER_MIRROR_URL(opzionale) — URL del tuo mirror di Docker Hub (ad es. https://mirror.corp.internal)
DOCKER_REGISTRY_URL — URL del tuo container registry privato (ad es. registry.corp.internal:5000)
DOCKER_REGISTRY_USER — Nome utente del registry
DOCKER_REGISTRY_PASS — Password o token API del registry
initialize: - name: Create Docker config directory run: sudo mkdir -p /etc/dockermaintenance: - name: Configure Docker for private registry run: | # Configura il mirror del registry (opzionale — instrada i pull da Docker Hub attraverso il tuo registry) cat << EOF | sudo tee /etc/docker/daemon.json > /dev/null { "registry-mirrors": ["$DOCKER_MIRROR_URL"] } EOF sudo systemctl restart docker || trueknowledge: - name: private_container_images contents: | With the registry secrets available, run this in one shell. Replace team/image:tag with the image to pull: ( set -euo pipefail umask 077 DOCKER_CONFIG=$(mktemp -d) export DOCKER_CONFIG trap 'rm -rf "$DOCKER_CONFIG"' EXIT printf '%s' "$DOCKER_REGISTRY_PASS" | docker login "$DOCKER_REGISTRY_URL" \ --username "$DOCKER_REGISTRY_USER" --password-stdin docker pull "$DOCKER_REGISTRY_URL/team/image:tag" )
Per memorizzare nella cache un’image nello snapshot, inserisci la stessa subshell completa in un passaggio di build. Non suddividere login e pulizia in passaggi diversi e verifica che la pulizia vada a buon fine prima di creare l’image. L’URL di un mirror del registry non deve contenere credentials.
Configura Cargo per risolvere i crate da un registry privato.
Rust (tramite rustup) e Cargo sono preinstallati nell’immagine di base di Devin. Salta il passaggio di installazione se la toolchain stable predefinita è sufficiente: ti serve solo la configurazione del registry.
Segreti richiesti
CARGO_REGISTRY_INDEX — URL dell’indice del registry privato (ad es. sparse+https://cargo.corp.internal/api/v1/crates/)
CARGO_REGISTRIES_PRIVATE_TOKEN — Token di autenticazione per il registry denominato private
initialize: - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ | sh -s -- -y --default-toolchain stable echo 'source "$HOME/.cargo/env"' \ | sudo tee /etc/profile.d/rust.sh > /dev/nullmaintenance: - name: Configure Cargo for private registry run: | mkdir -p ~/.cargo cat > ~/.cargo/config.toml << EOF [registry] global-credential-providers = ["cargo:token"] [registries.private] index = "$CARGO_REGISTRY_INDEX" [source.crates-io] replace-with = "private" [source.private] registry = "$CARGO_REGISTRY_INDEX" EOFknowledge: - name: private_rust_packages contents: | Run cargo fetch with CARGO_REGISTRIES_PRIVATE_TOKEN in its environment.
L’URL dell’index del registry non deve contenere credenziali. Il provider cargo:token di Cargo legge dall’ambiente il token del registry indicato; non eseguire cargo login in un passaggio di build.
Se devi solo aggiungere un registry privato senza sostituire crates.io, rimuovi le sezioni [source.crates-io] e [source.private] e usa cargo install --registry private oppure [dependencies] my-crate = { version = "1.0", registry = "private" } in Cargo.toml.
Ruby / Bundler
Installa Ruby e configura Bundler per risolvere le gem da un gem server privato.
Segreti richiesti
GEM_SERVER_URL — URL del tuo gem server privato (ad es. https://artifactory.example.com/artifactory/api/gems/gems-virtual)
BUNDLE_ARTIFACTORY__EXAMPLE__COM — username:password per artifactory.example.com; modifica il nome della variabile in base al tuo gem server
initialize: - name: Install Ruby run: | sudo apt-get update -qq sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq ruby-fullmaintenance: - name: Configure Bundler for private gem server run: | bundle config set mirror.https://rubygems.org "$GEM_SERVER_URL"knowledge: - name: private_ruby_packages contents: | Run bundle install with BUNDLE_ARTIFACTORY__EXAMPLE__COM in its environment.
Usa un GEM_SERVER_URL senza credenziali. Per la variabile delle credenziali di Bundler, anteponi BUNDLE_ all’hostname in maiuscolo, sostituisci ogni punto con __ e ogni trattino con ___.
I token di AWS CodeArtifact scadono normalmente dopo 12 ore. Crea uno script contenente riferimenti letterali, quindi eseguine esplicitamente il source nello stesso shell command di npm, pip o Maven per ottenere un token. Salvare lo script in un blueprint non ne comporta l’esecuzione all’avvio della sessione.
awscli è pre-installato sull’immagine di base di Devin. Ti servono solo l’aggiornamento del token e la configurazione del registry.
Segreti richiesti
AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY — credenziali IAM con le autorizzazioni codeartifact:GetAuthorizationToken e sts:GetServiceBearerToken
CA_DOMAIN — il nome del tuo dominio CodeArtifact
CA_DOMAIN_OWNER — ID dell’AWS account proprietario del dominio
CA_REGION — regione AWS (ad es. us-east-1)
CA_NPM_REPO, CA_PYPI_REPO, CA_MAVEN_REPO — nomi dei repository per ciascun ecosistema
maintenance: - name: Configure CodeArtifact clients and refresh script run: | mkdir -p ~/.config cat > ~/.config/codeartifact.sh <<'SCRIPT' CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token \ --domain "$CA_DOMAIN" \ --domain-owner "$CA_DOMAIN_OWNER" \ --region "$CA_REGION" \ --query authorizationToken \ --output text) || return export CODEARTIFACT_AUTH_TOKEN export CA_ENDPOINT="https://${CA_DOMAIN}-${CA_DOMAIN_OWNER}.d.codeartifact.${CA_REGION}.amazonaws.com" export PIP_INDEX_URL="https://aws:${CODEARTIFACT_AUTH_TOKEN}@${CA_DOMAIN}-${CA_DOMAIN_OWNER}.d.codeartifact.${CA_REGION}.amazonaws.com/pypi/${CA_PYPI_REPO}/simple/" SCRIPT # Configura npm npm config set registry '${CA_ENDPOINT}/npm/${CA_NPM_REPO}/' npm config set "//${CA_DOMAIN}-${CA_DOMAIN_OWNER}.d.codeartifact.${CA_REGION}.amazonaws.com/npm/${CA_NPM_REPO}/:_authToken" '${CODEARTIFACT_AUTH_TOKEN}' # Configura Maven (opzionale) mkdir -p ~/.m2 cat > ~/.m2/settings.xml <<'EOF' <settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> <mirrors> <mirror> <id>codeartifact</id> <mirrorOf>*</mirrorOf> <url>${env.CA_ENDPOINT}/maven/${env.CA_MAVEN_REPO}/</url> </mirror> </mirrors> </settings> EOFknowledge: - name: codeartifact_packages contents: | With AWS credentials and the CA_* variables available, run the appropriate command in one shell; source the script again for later invocations: source ~/.config/codeartifact.sh && npm install source ~/.config/codeartifact.sh && pip install -r requirements.txt source ~/.config/codeartifact.sh && mvn dependency:resolve
Per precaricare una cache delle dipendenze nello snapshot, aggiungi il comando source ... && appropriato come passaggio di build successivo. Il token recuperato rimane nell’ambiente di quella shell: non renderlo persistente con aws codeartifact login, con npm config set usando un token espanso o con un file pip.conf contenente credenziali.
Infrastruttura a livello di macchina valida per tutte le org e repo. Impostala in Enterprise Settings > Environments > Blueprint (a livello di Enterprise) oppure in Settings > Environment > Blueprints > Org-wide setup (a livello di org).
La tua organizzazione utilizza un’autorità di certificazione privata per i servizi interni. Devin richiede il certificato radice per accedere ai registry interni e agli strumenti tramite HTTPS.
Segreti richiesti
CORP_ROOT_CA_B64 — certificato PEM codificato in Base64 della tua CA aziendale. Genera con: cat corp-root-ca.crt | base64 -w0
Questi input sono certificati pubblici. openssl x509 scrive solo il certificato analizzato, quindi un’eventuale chiave privata inclusa per errore non viene copiata nell’archivio di attendibilità. Fornisci ogni certificato CA separatamente, come nell’esempio seguente.
Certificati CA multipli
Se la tua organizzazione utilizza più certificati CA (ad es. CA distinte per diversi servizi interni).
Segreti richiesti
CORP_ROOT_CA_B64 — certificato CA principale codificato in Base64
CORP_INTERMEDIATE_CA_B64 — certificato CA intermedio codificato in Base64
initialize: - name: Install corporate CA certificates run: | set -o pipefail printf '%s' "$CORP_ROOT_CA_B64" | base64 -d | openssl x509 -outform PEM \ | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null printf '%s' "$CORP_INTERMEDIATE_CA_B64" | base64 -d | openssl x509 -outform PEM \ | sudo tee /usr/local/share/ca-certificates/corp-intermediate-ca.crt > /dev/null sudo update-ca-certificates # Crea un bundle combinato per gli strumenti che richiedono un singolo file CA cat /usr/local/share/ca-certificates/corp-*.crt \ | sudo tee /usr/local/share/ca-certificates/corp-bundle.crt > /dev/null echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-bundle.crt' \ | sudo tee /etc/profile.d/node-ca.sh > /dev/null
Proxy HTTP/HTTPS
Instrada tutto il traffico di rete tramite un proxy aziendale.
Segreti richiesti
CORP_HTTP_PROXY — URL del proxy HTTP (ad es. http://proxy.corp.example.com:8080)
CORP_HTTPS_PROXY — URL del proxy HTTPS
CORP_NO_PROXY — elenco di host, separati da virgole, da escludere dal proxy (ad es. localhost,127.0.0.1,.corp.example.com)
initialize: - name: Configure system-wide proxy run: | cat << 'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null export http_proxy="$CORP_HTTP_PROXY" export https_proxy="$CORP_HTTPS_PROXY" export no_proxy="$CORP_NO_PROXY" export HTTP_PROXY="$CORP_HTTP_PROXY" export HTTPS_PROXY="$CORP_HTTPS_PROXY" export NO_PROXY="$CORP_NO_PROXY" PROXY source /etc/profile.d/proxy.shknowledge: - name: proxy_commands contents: | With CORP_HTTP_PROXY, CORP_HTTPS_PROXY and CORP_NO_PROXY available, source the proxy setup in each command that needs it, for example: source /etc/profile.d/proxy.sh && npm install source /etc/profile.d/proxy.sh && git fetch
Proxy autenticato
Se il proxy aziendale richiede l’autenticazione tramite nome utente/password.
Segreti richiesti
PROXY_USER — Nome utente del proxy
PROXY_PASS — Password del proxy
PROXY_HOST — hostname e porta del proxy (ad es. proxy.corp.example.com:8080)
CORP_NO_PROXY — host da escludere dal proxy
initialize: - name: Configure authenticated proxy run: | cat <<'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null export http_proxy="http://${PROXY_USER}:${PROXY_PASS}@${PROXY_HOST}" export https_proxy="$http_proxy" export no_proxy="$CORP_NO_PROXY" export HTTP_PROXY="$http_proxy" export HTTPS_PROXY="$https_proxy" export NO_PROXY="$CORP_NO_PROXY" PROXY source /etc/profile.d/proxy.shknowledge: - name: authenticated_proxy_commands contents: | With the proxy secrets available, source the proxy setup in the same command as each tool that needs it, for example: source /etc/profile.d/proxy.sh && git fetch
Applica la codifica percent-encoding ai caratteri speciali nel nome utente e nella password del proxy. Git e npm possono utilizzare le variabili d’ambiente del proxy; non copiare un URL del proxy contenente credenziali nella loro configurazione persistente.
Certificato CA + proxy (combinati)
Configurazione combinata per ambienti che richiedono sia una CA aziendale sia un proxy. Questa configurazione è comune negli ambienti enterprise in cui i servizi interni usano certificati privati e tutto il traffico deve passare tramite un proxy.
Segreti richiesti
CORP_ROOT_CA_B64 — certificato CA aziendale codificato in Base64
I tuoi registry privati, i server Git o altri servizi interni sono raggiungibili solo tramite VPN. Installa il client VPN nel blueprint. Stabilisci il tunnel esplicitamente per le operazioni che lo richiedono, quindi disconnettiti e rimuovi i file delle credenziali al termine.
Segreti richiesti
OpenVPN:
VPN_CONFIG_B64 — file di configurazione OpenVPN (.ovpn) codificato in Base64. Genera con: cat corp.ovpn | base64 -w0
VPN_AUTH_USER(facoltativo) — nome utente VPN, se la VPN richiede l’autenticazione con nome utente/password
VPN_AUTH_PASS(facoltativo) — password VPN
WireGuard:
WG_CONFIG_B64 — file di configurazione WireGuard codificato in Base64. Genera con: cat wg0.conf | base64 -w0
Esegui esplicitamente questo block in una sessione in cui i segreti VPN sono disponibili. Sostituisci il comando curl con l’operazione che richiede il tunnel. La configurazione deve contenere inline i certificati e le chiavi richiesti e usare dev tun0; non abilitare un servizio VPN persistente.
( set -euo pipefail umask 077 VPN_DIR=$(mktemp -d) cleanup() { if [ -f "$VPN_DIR/openvpn.pid" ]; then sudo kill "$(cat "$VPN_DIR/openvpn.pid")" || true fi sudo rm -rf "$VPN_DIR" } trap cleanup EXIT printf '%s' "$VPN_CONFIG_B64" | base64 -d > "$VPN_DIR/corp.conf" if [ -n "${VPN_AUTH_USER:-}" ] && [ -n "${VPN_AUTH_PASS:-}" ]; then printf '%s\n%s\n' "$VPN_AUTH_USER" "$VPN_AUTH_PASS" > "$VPN_DIR/auth.txt" printf 'auth-user-pass %s/auth.txt\n' "$VPN_DIR" >> "$VPN_DIR/corp.conf" fi sudo openvpn --config "$VPN_DIR/corp.conf" \ --writepid "$VPN_DIR/openvpn.pid" --daemon for i in $(seq 1 30); do if ip link show tun0 >/dev/null 2>&1; then break; fi sleep 1 done ip link show tun0 >/dev/null curl --fail https://service.corp.internal/health)
Se un build dello snapshot richiede l’accesso VPN, racchiudi tutto il lavoro dipendente nello stesso block, in modo che la pulizia venga completata prima della creazione dell’immagine. Spostare semplicemente la scrittura delle credential in maintenance non le rende temporanee. Non includere nello snapshot un tunnel attivo o una configurazione VPN privata.
La tua organizzazione richiede che tutti i commit Git siano firmati e vuoi che GitHub contrassegni i commit di Devin come Verified.
Segreti richiesti
GPG_PRIVATE_KEY_B64 — chiave privata GPG codificata in Base64. Generala con: gpg --export-secret-keys <key-id> | base64 -w0
GPG_SIGNING_KEY — impronta completa della chiave di firma
GIT_USER_NAME — nome dell’autore Git (ad es. Devin AI)
GIT_USER_EMAIL — email dell’autore Git. Deve corrispondere a un UID della chiave GPG, altrimenti GitHub non verificherà la firma.
Carica anche la chiave pubblica corrispondente sull’account GitHub le cui credenziali Devin usa per il push (in GitHub Settings > SSH and GPG keys). GitHub contrassegna i commit come Verified solo se la chiave pubblica di firma è registrata sull’account che ha creato il commit.
Non importare chiavi di firma private durante le build dello snapshot. Dopo aver preparato le modifiche desiderate, esegui esplicitamente questo blocco in una sessione in cui i segreti indicati sono disponibili. Il blocco utilizza un keyring temporaneo e impostazioni Git valide solo per questo commit:
Se la chiave richiede una passphrase, completa il flusso approvato dell’agente GPG/pinentry durante l’operazione. Non salvare la passphrase o il keyring nel blueprint o nello snapshot. Ripeti la configurazione del keyring temporaneo per i commit o i tag firmati successivi.
Identità Git e chiavi SSH
Configura l’identità Git e le chiavi SSH di Devin per accedere a server Git privati.Per i Git provider supportati, usa preferibilmente le Git integrations. Per un server che richiede una chiave SSH esplicita, tieni la chiave privata fuori dalla build del blueprint e usala solo per l’operazione di sessione descritta di seguito.
Segreti richiesti
GIT_USER_NAME — nome dell’autore Git
GIT_USER_EMAIL — email dell’autore Git
SSH_PRIVATE_KEY_B64 — chiave privata SSH codificata in Base64. Generala con: cat ~/.ssh/id_ed25519 | base64 -w0
SSH_KNOWN_HOSTS_B64 — voci di known hosts codificate in Base64 e verificate rispetto alle impronte delle chiavi host pubblicate dall’amministratore del tuo server
Se ti servono opzioni SSH personalizzate, aggiungile a questa invocazione senza copiare una chiave privata in una configurazione SSH persistente o nella home directory. Ripeti la configurazione per ogni operazione.
Installa pacchetti di sistema che non sono presenti nell’immagine Devin predefinita (ad es. librerie native per l’elaborazione delle immagini o la generazione di PDF).
Imposta variabili d’ambiente persistenti e non segrete da rendere disponibili in ogni sessione. Non scrivere valori segreti o credenziali derivate in $ENVRC.L’approccio consigliato è scrivere righe KEY=VALUE nel file $ENVRC. Le variabili scritte in $ENVRC vengono esportate automaticamente per tutti i passaggi successivi e per la sessione di Devin (in modo analogo a $GITHUB_ENV di GitHub Actions).
Entrambi gli approcci funzionano. $ENVRC è più semplice ed è consigliato nella maggior parte dei casi.
Impostazioni locali e fuso orario
Le immagini di base predefinite potrebbero avere impostazioni del locale non corrette. Configura il locale e il fuso orario per evitare avvisi da strumenti di build, Java, Python e Git.
initialize: - name: Configure locale and timezone run: | sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq locales # Genera e imposta il locale sudo sed -i 's/^# *en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen sudo locale-gen sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 cat << 'LOCALE' | sudo tee /etc/profile.d/locale.sh > /dev/null export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" LOCALE # Imposta il fuso orario sudo timedatectl set-timezone UTC 2>/dev/null || \ sudo ln -sfn /usr/share/zoneinfo/UTC /etc/localtime
Limiti di risorse (ulimits)
Le build Java, Gradle e Node.js raggiungono spesso il limite predefinito di 1024 file aperti. Aumentalo per evitare errori di build.
initialize: - name: Raise resource limits run: | cat << 'LIMITS' | sudo tee /etc/security/limits.d/99-devin.conf > /dev/null * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 LIMITS # Imposta anche il massimo del kernel echo "fs.file-max = 65536" | sudo tee /etc/sysctl.d/99-devin-filemax.conf > /dev/null sudo sysctl -p /etc/sysctl.d/99-devin-filemax.conf 2>/dev/null || true
Sostituzione del mirror di APT
In ambienti air-gapped o soggetti a restrizioni, sostituisci i repository APT predefiniti di Ubuntu con un mirror interno.
Segreti richiesti
APT_MIRROR_URL — URL del tuo mirror APT interno (ad es. https://artifactory.example.com/artifactory/ubuntu-remote)
initialize: - name: Replace APT sources with internal mirror run: | # Backup delle sorgenti originali sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # Sostituisci tutti i mirror Ubuntu con il mirror interno sudo sed -i "s|http://archive.ubuntu.com/ubuntu|$APT_MIRROR_URL|g" /etc/apt/sources.list sudo sed -i "s|http://security.ubuntu.com/ubuntu|$APT_MIRROR_URL|g" /etc/apt/sources.list sudo apt-get update -qq
direnv è già configurato nella shell di Devin, quindi le variabili di .envrc vengono caricate automaticamente. Non serve eseguire il source manualmente.
Per le variabili d’ambiente sensibili (API key, token, password del database), usa i segreti del repo invece dei file .envrc e associali esplicitamente ai comandi della sessione che ne hanno bisogno. Espandere un segreto in un file durante una build può comunque farlo finire nello snapshot.
Cambio della versione di Node per singola repo
Usa nvm (preinstallato) per cambiare versione di Node.js per ciascun repository tramite .nvmrc.
nvm use legge .nvmrc dalla directory radice della repo. Assicurati che il repository ne abbia uno (ad es., contenente 20).
Autenticazione nel browser (Playwright)
Devin mette a disposizione un browser Chrome con un endpoint CDP su localhost:29229durante le sessioni. Usa script Playwright per automatizzare il login nel browser.
Il browser è disponibile solo durante le sessioni, non nelle build snapshot. Installa Playwright in initialize e conserva gli script di login nella tua repo.
initialize: | pip install playwright playwright install chromiummaintenance: | npm installknowledge: - name: browser-auth contents: | This project requires browser authentication. Run the login script before interacting with the app: python scripts/login.py Devin's Chrome browser is accessible via CDP at: http://localhost:29229
Esempio di script di accesso (scripts/login.py):
from playwright.sync_api import sync_playwrightimport oswith sync_playwright() as p: browser = p.chromium.connect_over_cdp("http://localhost:29229") context = browser.contexts[0] page = context.pages[0] if context.pages else context.new_page() page.goto("https://internal-tool.example.com/login") page.fill("#username", os.environ["TOOL_USERNAME"]) page.fill("#password", os.environ["TOOL_PASSWORD"]) page.click('button[type="submit"]') page.wait_for_url("**/dashboard")
Conserva le credenziali di accesso come secrets, non nel codice sorgente. Per un’autenticazione a lungo termine, esegui il commit degli script di accesso in .agents/skills/ in modo che Devin possa riautenticarsi automaticamente.
Strumenti di sistema personalizzati e PATH
Installa pacchetti di sistema, binari personalizzati e configura il PATH in initialize.
Devin supporta l’esecuzione diretta di GitHub Actions nella sezione initialize di un blueprint. Questo è utile per installare versioni specifiche degli strumenti tramite le stesse azioni usate dalla tua CI.
Azioni come setup-node e setup-python modificano il PATH e le variabili d’ambiente. I binari installati da un’azione sono disponibili in tutti i passaggi successivi e in maintenance. Le azioni Node.js e quelle composite sono supportate; le azioni Docker sono supportate solo nelle build Linux. I passaggi uses non possono essere eseguiti in maintenance. Vedi limitazioni delle GitHub Actions.
Non servono GitHub Actions per la configurazione di base degli strumenti. I comandi shell diretti (nvm install 20, curl ... | sh, apt-get install) funzionano altrettanto bene e spesso sono più semplici. Le GitHub Actions sono particolarmente utili quando vuoi replicare esattamente la configurazione della tua CI o sfruttare la comodità di azioni come setup-java, che gestiscono più distribuzioni.
Proxy inverso HTTPS locale per più app
Esegui più servizi dietro hostname dall’aspetto realistico su HTTPS, come app.example.com, api.example.com e admin.example.com. Installa un singolo proxy inverso in initialize e instrada ogni hostname verso una porta upstream locale diversa.Caddy gestisce il routing e il TLS locale in un unico strumento. Un Caddyfile associa ogni hostname a un upstream e tls internal emette automaticamente un certificato attendibile per ciascun hostname dalla CA integrata di Caddy. caddy trust installa la root di quella CA nell’archivio di attendibilità del sistema e, aggiungendo la stessa root al database NSS, il browser la accetterà.Carica il Caddyfile tramite la sezione File allegati dell’editor del blueprint; sarà quindi disponibile come $FILE_CADDYFILE.
initialize: - name: Install Caddy and NSS tools run: | sudo apt-get install -y debian-keyring debian-archive-keyring \ apt-transport-https curl libnss3-tools curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \ | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \ | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt-get update -qq sudo apt-get install -y caddy - name: Install Caddyfile, hosts entries, and trust internal CA run: | sudo install -m 0644 "$FILE_CADDYFILE" /etc/caddy/Caddyfile for host in app.example.com api.example.com admin.example.com; do grep -q " $host$" /etc/hosts \ || echo "127.0.0.1 $host" | sudo tee -a /etc/hosts > /dev/null done sudo systemctl enable --now caddy sudo caddy trust mkdir -p ~/.pki/nssdb [ -f ~/.pki/nssdb/cert9.db ] \ || certutil -d sql:$HOME/.pki/nssdb -N --empty-password CADDY_ROOT=/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt for _ in $(seq 1 30); do sudo test -f "$CADDY_ROOT" && break sleep 1 done if sudo test -f "$CADDY_ROOT" \ && ! certutil -d sql:$HOME/.pki/nssdb -L | grep -q "Caddy Local Authority"; then sudo install -o "$USER" -m 0644 "$CADDY_ROOT" /tmp/caddy-root.crt certutil -d sql:$HOME/.pki/nssdb -A -t "C,," \ -n "Caddy Local Authority" -i /tmp/caddy-root.crt rm -f /tmp/caddy-root.crt fi
Il loop di /etc/hosts è ciò che consente a app.example.com di risolversi in 127.0.0.1 all’interno della sessione. Aggiungi una voce per ogni hostname che inserisci nel Caddyfile.
Per aggiungere un servizio, aggiungi un blocco di tre righe al Caddyfile e una voce al loop di /etc/hosts, quindi apri il relativo hostname tramite HTTPS. Caddy genera un certificato alla prima richiesta, quindi non è necessario generare certificati separati per ogni app.
Questi esempi mostrano come si combinano le configurazioni Enterprise e quelle a livello di org. In pratica, le divideresti tra diversi ambiti. Qui sono riunite a scopo di riferimento.
Stack Enterprise completo (Artifactory)
Un ambiente enterprise completo: certificato CA aziendale, proxy, Java (Maven), Python (pip/uv), Node.js (npm) e Docker, tutti puntati a una singola istanza di Artifactory.
Segreti richiesti
Rete e attendibilità (per l’intero account):
CORP_ROOT_CA_B64 — certificato CA aziendale codificato in Base64
CORP_HTTP_PROXY — URL del proxy HTTP
CORP_HTTPS_PROXY — URL del proxy HTTPS
CORP_NO_PROXY — host da escludere dal proxy
Credenziali del registry (per l’intera org):
ARTIFACTORY_USER — nome utente Artifactory
ARTIFACTORY_TOKEN — token API o password di Artifactory
ARTIFACTORY_MAVEN_URL — URL del repository Maven (ad es., https://artifactory.example.com/artifactory/maven-virtual)
ARTIFACTORY_PYPI_URL — URL del repository PyPI (ad es., https://user:token@artifactory.example.com/artifactory/api/pypi/pypi-virtual/simple)
ARTIFACTORY_NPM_URL — URL del repository npm (ad es., https://artifactory.example.com/artifactory/api/npm/npm-virtual)
ARTIFACTORY_DOCKER_URL — URL del registry Docker (ad es., artifactory.example.com)
In genere questo verrebbe suddiviso in tre ambiti:
A livello di account (initialize): Certificato e proxy
Org-wide (initialize): Installazione del runtime del linguaggio
A livello di org (maintenance): configurazione del registry contenente riferimenti letterali
Comandi di sessione: fornire esplicitamente i segreti, caricare l’environment setup ed effettuare il login per singole operazioni Docker
In questo esempio, tutti i registry puntano alla stessa istanza di Artifactory, ma utilizzano percorsi URL diversi. Ogni ecosistema di pacchetti ha il proprio formato di endpoint. Gli URL di Maven, PyPI, npm e Docker sono tutti diversi, anche per lo stesso registry.
Multilingua con registry diversi
Quando linguaggi diversi usano registry privati diversi (ad es. Maven da Nexus, npm da GitHub Packages, Python da Artifactory).
Segreti richiesti
NEXUS_MAVEN_URL — URL del repository Maven di Nexus
NEXUS_USER — nome utente di Nexus
NEXUS_PASS — password di Nexus
GITHUB_PACKAGES_TOKEN — token di accesso personale di GitHub con ambito read:packages
ARTIFACTORY_USER — nome utente di Artifactory
ARTIFACTORY_TOKEN — token API di Artifactory
Collega il tuo Git provider e concedi l’accesso ai repository che ospitano i moduli Go tramite le integrazioni Git.
In un ambiente completamente air-gapped, Devin non può accedere ad alcun URL pubblico. Tutti gli strumenti, i runtime e i pacchetti devono provenire da mirror interni.
Segreti richiesti
Certificati:
CORP_ROOT_CA_B64 — certificato CA aziendale codificato in Base64
Accesso ai mirror:
APT_MIRROR_URL — URL del mirror APT interno di Ubuntu
MIRROR_USER — nome utente per l’autenticazione al mirror
MIRROR_PASS — password per l’autenticazione al mirror
JDK_TARBALL_URL — URL da cui scaricare il tarball JDK dal mirror interno
NODE_TARBALL_URL — URL da cui scaricare il tarball Node.js dal mirror interno
Registry dei pacchetti:
INTERNAL_MAVEN_URL — URL del registry Maven interno
Negli ambienti air-gapped, tutti gli strumenti necessari a Devin (runtime dei linguaggi di programmazione, strumenti CLI, ecc.) devono essere disponibili sui vostri mirror interni. I registry pubblici e i siti di download non sono raggiungibili.
VPN + certificati + proxy + linguaggi
Una configurazione Enterprise completa che combina strumenti VPN, certificati, configurazione del proxy e supporto multilingua. Il blueprint installa gli strumenti e memorizza la configurazione con riferimenti letterali. Connetti esplicitamente la VPN quando esegui operazioni che richiedono accesso interno.
Segreti richiesti
VPN:
VPN_CONFIG_B64 — file di configurazione OpenVPN codificato in Base64
Rete & attendibilità:
CORP_ROOT_CA_B64 — certificato CA aziendale codificato in Base64
CORP_HTTP_PROXY — URL del proxy HTTP
CORP_HTTPS_PROXY — URL del proxy HTTPS
CORP_NO_PROXY — host da escludere dal proxy
Credenziali del registry:
MAVEN_REGISTRY_URL — URL del registry Maven
NPM_REGISTRY_URL — URL del registry npm
PYPI_REGISTRY_HOST — hostname del registry PyPI
REGISTRY_USER — nome utente del registry (per Maven e pip)
REGISTRY_PASS — password del registry (per Maven e pip)
REGISTRY_TOKEN — token di autenticazione per npm
initialize: # 1. Client VPN - name: Install VPN client run: | sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openvpn # 2. DNS — risolve gli hostname interni - name: Configure DNS run: | sudo mkdir -p /etc/systemd/resolved.conf.d cat << 'DNS' | sudo tee /etc/systemd/resolved.conf.d/corp.conf > /dev/null [Resolve] DNS=10.0.0.53 Domains=corp.internal DNS sudo systemctl restart systemd-resolved || true # 3. Certificati — attendibilità delle CA interne - name: Install CA certificate run: | set -o pipefail printf '%s' "$CORP_ROOT_CA_B64" | base64 -d | openssl x509 -outform PEM \ | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null sudo update-ca-certificates echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-root-ca.crt' \ | sudo tee /etc/profile.d/node-ca.sh > /dev/null # 4. Proxy — instrada il traffico attraverso il proxy aziendale - name: Configure proxy run: | cat << 'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null export http_proxy="$CORP_HTTP_PROXY" export https_proxy="$CORP_HTTPS_PROXY" export no_proxy="$CORP_NO_PROXY" export HTTP_PROXY="$CORP_HTTP_PROXY" export HTTPS_PROXY="$CORP_HTTPS_PROXY" export NO_PROXY="$CORP_NO_PROXY" PROXY source /etc/profile.d/proxy.sh # 5. Language runtimes - name: Install language runtimes over VPN run: | ( set -euo pipefail umask 077 VPN_DIR=$(mktemp -d) cleanup() { if [ -f "$VPN_DIR/openvpn.pid" ]; then sudo kill "$(cat "$VPN_DIR/openvpn.pid")" || true fi sudo rm -rf "$VPN_DIR" } trap cleanup EXIT printf '%s' "$VPN_CONFIG_B64" | base64 -d > "$VPN_DIR/corp.conf" sudo openvpn --config "$VPN_DIR/corp.conf" \ --writepid "$VPN_DIR/openvpn.pid" --daemon for i in $(seq 1 30); do if ip link show tun0 >/dev/null 2>&1; then break; fi sleep 1 done ip link show tun0 >/dev/null source /etc/profile.d/proxy.sh sudo --preserve-env=http_proxy,https_proxy,no_proxy,HTTP_PROXY,HTTPS_PROXY,NO_PROXY \ apt-get update -qq sudo --preserve-env=http_proxy,https_proxy,no_proxy,HTTP_PROXY,HTTPS_PROXY,NO_PROXY \ DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \ | sudo tee /etc/profile.d/java.sh > /dev/null npm install -g pnpm curl -LsSf https://astral.sh/uv/install.sh | sh )maintenance: - name: Configure Maven run: | mkdir -p ~/.m2 cat > ~/.m2/settings.xml <<'EOF' <settings> <mirrors> <mirror> <id>corp</id> <mirrorOf>*</mirrorOf> <url>${env.MAVEN_REGISTRY_URL}</url> </mirror> </mirrors> <servers> <server> <id>corp</id> <username>${env.REGISTRY_USER}</username> <password>${env.REGISTRY_PASS}</password> </server> </servers> </settings> EOF - name: Configure npm run: | npm config set registry '${NPM_REGISTRY_URL}' NPM_HOST=$(echo "$NPM_REGISTRY_URL" | sed 's|https\?://||;s|/.*||') npm config set "//${NPM_HOST}/:_authToken" '${REGISTRY_TOKEN}' - name: Configure pip/uv run: | mkdir -p ~/.config cat > ~/.config/private-pypi.sh <<'EOF' export PIP_INDEX_URL="https://$REGISTRY_USER:$REGISTRY_PASS@${PYPI_REGISTRY_HOST}/simple" export UV_INDEX_URL="$PIP_INDEX_URL" EOFknowledge: - name: internal_packages contents: | Use the temporary OpenVPN setup/cleanup block from the template library when an operation needs VPN access. Inside that block, with the registry and proxy secrets available, replace the sample curl command with: source /etc/profile.d/proxy.sh mvn dependency:resolve npm install source ~/.config/private-pypi.sh uv sync Percent-encode the pip URL credentials. Disconnect the VPN and remove its temporary files when the operation finishes.
È richiesto l’accesso bootstrap. Il client OpenVPN deve essere preinstallato o installabile prima di stabilire il tunnel. VPN_CONFIG_B64 deve contenere certificati/chiavi inline, usare dev tun0 e connettersi senza authentication interattiva. I download dei runtime vengono eseguiti all’interno di un unico lifecycle del tunnel e caricano esplicitamente l’ambiente del proxy. Ripeti il block di setup/pulizia della VPN riportato in Rete e connettività per le operazioni di sessione; il blueprint non riconnette la VPN all’avvio della sessione.
Prova prima i comandi in una sessione. Esegui i comandi manualmente in una sessione di Devin prima di aggiungerli al blueprint. È più veloce che aspettare un ciclo di build completo.
Usa initialize per gli strumenti da installare una sola volta, maintenance per le dipendenze. Tutto ciò che richiede minuti per essere installato (compilatori, binari di grandi dimensioni, strumenti globali) va in initialize. I comandi rapidi per le dipendenze (npm install, uv sync) vanno in maintenance.
Mantieni rapidi i comandi maintenance. Cerca di restare sotto i 2 minuti. Vengono eseguiti durante le build e vengono mostrati all’agente all’inizio della sessione.
Usa $ENVRC per le variabili d’ambiente non sensibili. Non scrivere credenziali o token derivati in $ENVRC, .bashrc o .profile. Carica esplicitamente la configurazione della shell che dipende dai segreti nel comando che ne ha bisogno.
Assegna un nome ai passaggi. La forma estesa con i campi name rende molto più semplice individuare gli errori nei log di build.
Usa le subshell per i monorepo.(cd packages/foo && npm install) viene eseguito in una subshell, così i passaggi successivi non risentono del cambio di directory.
Usa npm install, non npm ci.npm ci elimina node_modules e reinstalla tutto da zero, rallentando maintenance.
Usa i segreti del repo per i valori sensibili. Configurali nella scheda Segreti dell’editor del blueprint del repository invece di inserirli direttamente nei blueprint.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Devin Docs","colors":{"primary":"#317CFF","light":"#317CFF","dark":"#317CFF"},"logo":{"light":"https://mintcdn.com/cognitionai/Hhrl_8XUBqA4VQ6v/logo/devin.png?fit=max\u0026auto=format\u0026n=Hhrl_8XUBqA4VQ6v\u0026q=85\u0026s=d640ec685cb70a1a33e7ad5a1dc931a1","dark":"https://mintcdn.com/cognitionai/FxQ7nXMRUlEte9xx/logo/devin-light.png?fit=max\u0026auto=format\u0026n=FxQ7nXMRUlEte9xx\u0026q=85\u0026s=934b3145a143dfd32339d13482b3d15f"},"favicon":"https://mintcdn.com/cognitionai/Hhrl_8XUBqA4VQ6v/logo/favicon.svg?fit=max\u0026auto=format\u0026n=Hhrl_8XUBqA4VQ6v\u0026q=85\u0026s=ab641f30c01bf5374b90b62209db569e","api":{"playground":{"display":"simple"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.devin.ai"}},"background":{"color":{"light":"#FCFCFC","dark":"#141414"}},"navbar":{"links":[{"href":"mailto:support@cognition.ai","label":"Support"}],"primary":{"type":"button","label":"Devin","href":"https://app.devin.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/cognition-ai-labs","x":"https://x.com/cognition_labs"}},"seo":{"metatags":{"canonical":"https://docs.devin.ai"},"paths":[{"path":"ja","metatags":{"og:image":"https://docs.devin.ai/images/og/devin-docs-ja.png","twitter:image":"https://docs.devin.ai/images/og/devin-docs-ja.png"}},{"path":"zh","metatags":{"og:image":"https://docs.devin.ai/images/og/devin-docs-zh.png","twitter:image":"https://docs.devin.ai/images/og/devin-docs-zh.png"}}]},"contextual":{"options":["copy","view","devin","windsurf","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"get-started/devin-intro"},{"language":"es","href":"es/get-started/devin-intro"},{"language":"ja","href":"ja/get-started/devin-intro"},{"language":"zh","href":"zh/get-started/devin-intro"},{"language":"fr","href":"fr/get-started/devin-intro"},{"language":"de","href":"de/get-started/devin-intro"},{"language":"pt-BR","href":"pt-BR/get-started/devin-intro"},{"language":"it","href":"it/get-started/devin-intro"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cognitionai","hasAudioNarration":false,"actualSubdomain":"cognitionai","customDomains":["docs.devin.ai"],"gitSource":{"type":"github","owner":"usacognition","repo":"devin-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3a05b273dff99970c7730","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"API","count":314},{"language":"de","tag":"API","count":304},{"language":"es","tag":"API","count":304},{"language":"fr","tag":"API","count":304},{"language":"it","tag":"API","count":304},{"language":"ja","tag":"API","count":304},{"language":"pt-BR","tag":"API","count":304},{"language":"zh","tag":"API","count":304},{"language":"de","tag":"Desktop","count":103},{"language":"es","tag":"Escritorio","count":103},{"language":"fr","tag":"Desktop","count":103},{"language":"it","tag":"Desktop","count":103},{"language":"ja","tag":"デスクトップ","count":103},{"language":"pt-BR","tag":"Desktop","count":103},{"language":"zh","tag":"桌面版","count":103},{"language":"en","tag":"Desktop","count":96},{"language":"en","tag":"Cloud","count":91},{"language":"de","tag":"Cloud","count":88},{"language":"es","tag":"Cloud","count":88},{"language":"fr","tag":"Cloud","count":88},{"language":"it","tag":"Cloud","count":88},{"language":"ja","tag":"クラウド","count":88},{"language":"pt-BR","tag":"Cloud","count":88},{"language":"zh","tag":"云","count":88},{"language":"en","tag":"Enterprise","count":60},{"language":"de","tag":"Enterprise","count":60},{"language":"es","tag":"Enterprise","count":60},{"language":"it","tag":"Enterprise","count":60},{"language":"ja","tag":"Enterprise","count":60},{"language":"pt-BR","tag":"Enterprise","count":60},{"language":"zh","tag":"企业版","count":60},{"language":"fr","tag":"Enterprise","count":55},{"language":"de","tag":"Legacy API v2","count":49},{"language":"es","tag":"API heredada v2","count":49},{"language":"fr","tag":"Ancienne API v2","count":49},{"language":"it","tag":"API legacy v2","count":49},{"language":"ja","tag":"レガシーAPI v2","count":49},{"language":"pt-BR","tag":"API legada v2","count":49},{"language":"zh","tag":"旧版 API v2","count":49},{"language":"en","tag":"Legacy API v2","count":47},{"language":"en","tag":"Identity \u0026 Access","count":43},{"language":"de","tag":"Identität \u0026 Zugriff","count":43},{"language":"es","tag":"Identidad y acceso","count":43},{"language":"fr","tag":"Identité et accès","count":43},{"language":"it","tag":"Identità e accessi","count":43},{"language":"ja","tag":"アイデンティティとアクセス","count":43},{"language":"pt-BR","tag":"Identidade e acesso","count":43},{"language":"zh","tag":"身份与访问控制","count":43},{"language":"en","tag":"CLI","count":39},{"language":"de","tag":"Umgebungsverwaltung","count":39},{"language":"de","tag":"CLI","count":39},{"language":"es","tag":"Gestión de Environment","count":39},{"language":"es","tag":"CLI","count":39},{"language":"fr","tag":"Gestion de l’environnement","count":39},{"language":"fr","tag":"CLI","count":39},{"language":"it","tag":"Gestione degli ambienti","count":39},{"language":"it","tag":"CLI","count":39},{"language":"ja","tag":"環境管理","count":39},{"language":"ja","tag":"CLI","count":39},{"language":"pt-BR","tag":"Gerenciamento de ambiente","count":39},{"language":"pt-BR","tag":"CLI","count":39},{"language":"zh","tag":"环境管理","count":39},{"language":"zh","tag":"CLI","count":39},{"language":"de","tag":"Devin Desktop","count":38},{"language":"es","tag":"Devin Desktop","count":38},{"language":"fr","tag":"Devin Desktop","count":38},{"language":"it","tag":"Devin Desktop","count":38},{"language":"ja","tag":"Devin Desktop","count":38},{"language":"pt-BR","tag":"Devin Desktop","count":38},{"language":"zh","tag":"Devin Desktop","count":38},{"language":"en","tag":"Environment Management","count":36},{"language":"en","tag":"Configuration","count":33},{"language":"es","tag":"Primeros pasos","count":33},{"language":"en","tag":"Agent Lifecycle","count":31},{"language":"de","tag":"Agent Lifecycle","count":31},{"language":"fr","tag":"Cycle de vie de l’agent","count":31},{"language":"it","tag":"Ciclo di vita dell'agente","count":31},{"language":"ja","tag":"Agentのライフサイクル","count":31},{"language":"pt-BR","tag":"Ciclo de vida do agente","count":31},{"language":"zh","tag":"Agent 生命周期","count":31}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".gallery-page-title{font-size:36px;font-weight:700;letter-spacing:-0.02em;margin-bottom:12px;color:#18181b}.dark .gallery-page-title,[data-theme=\"dark\"] .gallery-page-title{color:#ffffff}.gallery-page-subtitle{font-size:16px;color:#64748b;max-width:600px;margin:0 auto}.dark .gallery-page-subtitle,[data-theme=\"dark\"] .gallery-page-subtitle{color:#e4e4e7}.gallery-features-label{font-size:12px;color:#94a3b8;margin-right:4px}.dark .gallery-features-label,[data-theme=\"dark\"] .gallery-features-label{color:#71717a}.gallery-chip{display:inline-block;padding:6px 14px;border-radius:20px;border:1px solid #e2e8f0;background:transparent;color:#64748b;font-size:12px;font-weight:500;cursor:pointer;transition:all 0.15s;white-space:nowrap;user-select:none}.dark .gallery-chip,[data-theme=\"dark\"] .gallery-chip{border-color:#3f3f46;color:#a1a1aa}.gallery-chip:hover{border-color:#94a3b8;color:#334155}.dark .gallery-chip:hover,[data-theme=\"dark\"] .gallery-chip:hover{border-color:#71717a;color:#d4d4d8}.gallery-chip.active{background:#317CFF;border-color:#317CFF;color:#fff}.gallery-feature-chip{display:inline-block;padding:4px 12px;border-radius:16px;border:1px solid #e2e8f0;background:transparent;color:#64748b;font-size:11px;font-weight:500;cursor:pointer;transition:all 0.15s;white-space:nowrap;user-select:none}.dark .gallery-feature-chip,[data-theme=\"dark\"] .gallery-feature-chip{border-color:#3f3f46;color:#a1a1aa}.gallery-feature-chip:hover{border-color:#317CFF;color:#317CFF}.gallery-feature-chip.active{background:rgba(49, 124, 255, 0.1);border-color:#317CFF;color:#317CFF}@media (max-width: 640px){#category-filters{flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px}#category-filters::-webkit-scrollbar{display:none}#feature-filters{flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px}#feature-filters::-webkit-scrollbar{display:none}}@media (max-width: 900px){#gallery-grid{grid-template-columns:repeat(3, 1fr)!important}}@media (max-width: 480px){#gallery-grid{grid-template-columns:1fr!important}#category-filters,#feature-filters{justify-content:flex-start!important;overflow-x:auto;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}#category-filters::-webkit-scrollbar,#feature-filters::-webkit-scrollbar{display:none}}.gallery-card{display:block;text-decoration:none!important;color:inherit!important;height:100%}.gallery-card-inner{display:flex;flex-direction:column;height:180px;padding:18px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;transition:all 0.2s;overflow:hidden;position:relative}.dark .gallery-card-inner,[data-theme=\"dark\"] .gallery-card-inner{border-color:#27272a;background:#18181b}.gallery-card:hover .gallery-card-inner{border-color:#94a3b8;box-shadow:0 4px 16px rgba(0, 0, 0, 0.06);transform:translateY(-1px)}.dark .gallery-card:hover .gallery-card-inner,[data-theme=\"dark\"] .gallery-card:hover .gallery-card-inner{border-color:#52525b;box-shadow:0 4px 16px rgba(0, 0, 0, 0.3)}.gallery-card-cat{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:#317CFF;margin-bottom:6px}.gallery-card-cat[data-cat=\"project-management\"]{color:#818cf8}.gallery-card-cat[data-cat=\"automations\"]{color:#f59e0b}.gallery-card-cat[data-cat=\"incident-response\"]{color:#f87171}.gallery-card-cat[data-cat=\"code-quality\"]{color:#a78bfa}.gallery-card-cat[data-cat=\"migrations\"]{color:#317CFF}.gallery-card-cat[data-cat=\"data-analytics\"]{color:#22d3ee}.gallery-card-cat[data-cat=\"feature-development\"]{color:#60a5fa}.gallery-card-cat[data-cat=\"devin-optimization\"]{color:#2dd4bf}.gallery-card-title{display:block;font-size:14px;font-weight:600;color:#18181b;line-height:1.3;margin-bottom:6px}.dark .gallery-card-title,[data-theme=\"dark\"] .gallery-card-title{color:#f4f4f5}.gallery-card-desc{font-size:12px;color:#64748b;line-height:1.45;flex:1;min-height:0;overflow:hidden;position:relative}.gallery-card-desc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1.45em;background:linear-gradient(to bottom, transparent, #fff);pointer-events:none}.dark .gallery-card-desc::after,[data-theme=\"dark\"] .gallery-card-desc::after{background:linear-gradient(to bottom, transparent, #18181b)}.dark .gallery-card-desc,[data-theme=\"dark\"] .gallery-card-desc{color:#a1a1aa}.gallery-card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.gallery-tag{font-size:9px;padding:1px 6px;border-radius:10px;background:#f1f5f9;color:#94a3b8;font-weight:500}.dark .gallery-tag,[data-theme=\"dark\"] .gallery-tag{background:#27272a;color:#71717a}.gallery-popular{position:absolute;top:8px;right:8px;color:#f59e0b;font-size:16px;line-height:1;cursor:default;z-index:2}.uc-detail-wrapper{max-width:960px;margin:0 auto;padding:0 24px;box-sizing:border-box}.uc-hero{background:transparent;padding:64px 0 40px 0;border-bottom:1px solid #e2e8f0}.dark .uc-hero,[data-theme=\"dark\"] .uc-hero{border-bottom-color:#27272a}.uc-hero-inner{max-width:960px;margin:0 auto;padding:0 24px;box-sizing:border-box;width:100%;display:grid;grid-template-columns:1fr 240px;gap:48px;align-items:start}.uc-hero-title{font-size:36px;font-weight:700;color:#18181b;line-height:1.15;margin:0 0 16px 0;letter-spacing:-0.02em}.dark .uc-hero-title,[data-theme=\"dark\"] .uc-hero-title{color:#f4f4f5}.uc-hero-desc{font-size:16px;color:#64748b;line-height:1.6;margin:0}.dark .uc-hero-desc,[data-theme=\"dark\"] .uc-hero-desc{color:#a1a1aa}.uc-hero-meta{display:flex;flex-direction:column;gap:20px;padding-top:8px}.uc-meta-item{display:flex;flex-direction:column;gap:2px}.uc-meta-label{font-size:11px;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:0.05em}.dark .uc-meta-label,[data-theme=\"dark\"] .uc-meta-label{color:#71717a}.uc-meta-value{font-size:14px;font-weight:500;color:#334155}.dark .uc-meta-value,[data-theme=\"dark\"] .uc-meta-value{color:#e4e4e7}@media (max-width: 768px){.uc-hero{padding:32px 0}.uc-hero-inner{grid-template-columns:1fr;gap:24px;padding:0 16px}.uc-hero-title{font-size:28px}.uc-hero-meta{flex-direction:row;flex-wrap:wrap;gap:20px}}@media (max-width: 480px){.uc-hero-title{font-size:24px}.uc-hero-desc{font-size:14px}.uc-hero-meta{flex-direction:column;gap:16px}}.uc-hero .try-in-devin-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:#317CFF;color:#fff!important;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none!important;transition:background 0.2s;border:none;cursor:pointer;margin-top:24px;opacity:1}.uc-hero .try-in-devin-btn:hover{background:#2968D9;color:#fff!important}.uc-hero .try-in-devin-logo{width:20px;height:20px}a.nav-tabs-item[href*=\"/federal\"],a.mobile-nav-tabs-item[href*=\"/federal\"]{display:none!important}a.nav-tabs-item[href$=\"/sdk\"],a.nav-tabs-item[href*=\"/sdk/\"],a.mobile-nav-tabs-item[href$=\"/sdk\"],a.mobile-nav-tabs-item[href*=\"/sdk/\"]{display:none!important}#sidebar-content a[href$=\"/integrations/databricks\"] img,#sidebar-content a[href$=\"/integrations/mongodb\"] img,#sidebar-content a[href$=\"/integrations/pylon\"] img,#sidebar-content a[href$=\"/integrations/linear\"] img{display:none}#sidebar-content a[href$=\"/integrations/databricks\"]>div:first-child::before,#sidebar-content a[href$=\"/integrations/mongodb\"]>div:first-child::before,#sidebar-content a[href$=\"/integrations/pylon\"]>div:first-child::before,#sidebar-content a[href$=\"/integrations/linear\"]>div:first-child::before{content:\"\";display:block;width:1rem;height:1rem;background-color:#9ca3af}#sidebar-content a[href$=\"/integrations/databricks\"]>div:first-child::before{-webkit-mask:url(\"/images/databricks.svg\") center / contain no-repeat;mask:url(\"/images/databricks.svg\") center / contain no-repeat}#sidebar-content a[href$=\"/integrations/mongodb\"]>div:first-child::before{-webkit-mask:url(\"/images/mongodb.svg\") center / contain no-repeat;mask:url(\"/images/mongodb.svg\") center / contain no-repeat}#sidebar-content a[href$=\"/integrations/pylon\"]>div:first-child::before{-webkit-mask:url(\"/images/pylon.svg\") center / contain no-repeat;mask:url(\"/images/pylon.svg\") center / contain no-repeat}#sidebar-content a[href$=\"/integrations/linear\"]>div:first-child::before{-webkit-mask:url(\"/images/linear.svg\") center / contain no-repeat;mask:url(\"/images/linear.svg\") center / contain no-repeat}.dark #sidebar-content a[href$=\"/integrations/databricks\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content a[href$=\"/integrations/databricks\"]>div:first-child::before,.dark #sidebar-content a[href$=\"/integrations/mongodb\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content a[href$=\"/integrations/mongodb\"]>div:first-child::before,.dark #sidebar-content a[href$=\"/integrations/pylon\"]>div:first-child::before,.dark #sidebar-content a[href$=\"/integrations/linear\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content a[href$=\"/integrations/pylon\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content a[href$=\"/integrations/linear\"]>div:first-child::before{background-color:#6b7280}#sidebar-content li[data-active]>a[href$=\"/integrations/databricks\"]>div:first-child::before,.dark #sidebar-content li[data-active]>a[href$=\"/integrations/databricks\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content li[data-active]>a[href$=\"/integrations/databricks\"]>div:first-child::before,#sidebar-content li[data-active]>a[href$=\"/integrations/mongodb\"]>div:first-child::before,.dark #sidebar-content li[data-active]>a[href$=\"/integrations/mongodb\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content li[data-active]>a[href$=\"/integrations/mongodb\"]>div:first-child::before,#sidebar-content li[data-active]>a[href$=\"/integrations/pylon\"]>div:first-child::before,#sidebar-content li[data-active]>a[href$=\"/integrations/linear\"]>div:first-child::before,.dark #sidebar-content li[data-active]>a[href$=\"/integrations/pylon\"]>div:first-child::before,.dark #sidebar-content li[data-active]>a[href$=\"/integrations/linear\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content li[data-active]>a[href$=\"/integrations/pylon\"]>div:first-child::before,[data-theme=\"dark\"] #sidebar-content li[data-active]>a[href$=\"/integrations/linear\"]>div:first-child::before{background-color:#317CFF}.sticky-first-col table th:first-child,.sticky-first-col table td:first-child{position:sticky;left:0;z-index:1;background:#FCFCFC}.dark .sticky-first-col table th:first-child,.dark .sticky-first-col table td:first-child,[data-theme=\"dark\"] .sticky-first-col table th:first-child,[data-theme=\"dark\"] .sticky-first-col table td:first-child{background:#141414}"}],"page":{"pagePath":"it/onboard-devin/environment/templates","slug":"/it/onboard-devin/environment/templates","pageMetadata":{"title":"Libreria di template dei blueprint di Devin","sidebarTitle":"Template library","description":"Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l'infrastruttura enterprise.","keywords":["Devin blueprints","environment templates","VPN configuration","private registries"],"icon":"code","public":true,"href":"/it/onboard-devin/environment/templates"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l’infrastruttura enterprise.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Info,Note,Tab,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Blueprint pronti da copiare e incollare per i linguaggi e i casi d’uso più comuni. Combinali per comporre la tua configurazione completa. Gli esempi usano Bash su Linux; sostituisci host, ambiti e comandi di esempio con i tuoi.`}),`\n`,_jsxs(_components.p,{children:[`Per una descrizione dettagliata di ogni campo, consulta il `,_jsx(_components.a,{href:`/it/onboard-devin/environment/blueprint-reference`,children:`riferimento del blueprint`}),`.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Segreti:`}),` configura i segreti indicati nella scheda `,_jsx(_components.strong,{children:`Segreti`}),` all’interno di ciascun editor dei blueprint. I passaggi di build ricevono i segreti del blueprint applicabili. Durante una sessione, assicurati che ogni comando riceva i segreti di cui ha bisogno: i segreti con ambito repo richiedono binding espliciti dell’ambiente `,_jsx(_components.code,{children:`exec`}),`, ad esempio `,_jsx(_components.code,{children:`env={\"REGISTRY_TOKEN\": \"secret:repo:owner/repo:REGISTRY_TOKEN\"}`}),`. Consulta `,_jsx(_components.a,{href:`/it/product-guides/secrets`,children:`Secrets`}),`. Non inserire mai credenziali in modo hardcoded nel tuo blueprint.`]})}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`I passaggi di build non sono hook di avvio della sessione.`}),` `,_jsx(_components.code,{children:`initialize`}),` e `,_jsx(_components.code,{children:`maintenance`}),` vengono eseguiti durante la creazione degli snapshot; `,_jsx(_components.code,{children:`maintenance`}),` non viene eseguito automaticamente all’avvio della sessione. `,_jsx(_components.code,{children:`knowledge`}),` fornisce istruzioni a Devin, non hook eseguibili.`]}),_jsxs(_components.p,{children:[`Tieni le credenziali fuori dai file persistenti, incluso `,_jsx(_components.code,{children:`$ENVRC`}),`. La pulizia degli snapshot rimuove i file di segreti iniettati da Devin, non i file arbitrari creati dai tuoi comandi. Usa i riferimenti letterali a variabili supportati dallo strumento che li utilizza, oppure passa le credenziali nell’ambiente del comando. Quando uno strumento richiede file di credenziali, creali per una singola operazione ed eliminali prima che si concluda. Ripeti esplicitamente questa configurazione quando serve nel corso di una sessione.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`quick-start`,children:`Guida rapida`}),`\n`,_jsx(_components.p,{children:`Blueprint essenziali per le configurazioni più comuni. Copiane uno, incollalo nell’editor dei blueprint e il gioco è fatto.`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Progetto Node.js`,id:`progetto-node-js`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install -g pnpm`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pnpm install`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `pnpm lint` per verificare eventuali errori.\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `pnpm test` per la suite completa.\"})}),`\n`]})})})}),_jsx(Accordion,{title:`Progetto Python`,id:`progetto-python`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -LsSf https://astral.sh/uv/install.sh | sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv sync`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `uv run ruff check .` per il linting.\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `uv run pytest` per la suite completa.\"})}),`\n`]})})})}),_jsx(Accordion,{title:`Full-stack (Node + Python)`,id:`full-stack-node-python`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install pnpm`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`npm install -g pnpm`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install uv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`curl -LsSf https://astral.sh/uv/install.sh | sh`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Dipendenze frontend`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`(cd frontend \u0026\u0026 pnpm install)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Dipendenze backend`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`(cd backend \u0026\u0026 uv sync)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`structure`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" - `frontend/` — app React (pnpm)\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" - `backend/` — API Python (uv)\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Frontend: cd frontend \u0026\u0026 pnpm test`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Backend: cd backend \u0026\u0026 uv run pytest`})}),`\n`]})})})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`repository-blueprints`,children:`Blueprint dei repository`}),`\n`,_jsxs(_components.p,{children:[`Passaggi di build per ciascun repo, gestione delle dipendenze e voci di Knowledge. Configurali in `,_jsx(_components.strong,{children:`Settings > Ambiente > Blueprint > [il tuo repo]`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`python`,children:`Python`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`uv (consigliato)`,id:`uv-consigliato`,children:[_jsxs(_components.p,{children:[`Configurazione consigliata per i progetti Python che usano `,_jsx(_components.a,{href:`https://docs.astral.sh/uv/`,children:`uv`}),` per la gestione delle dipendenze.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -LsSf https://astral.sh/uv/install.sh | sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv sync`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv run ruff check .`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Correzione automatica:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv run ruff check --fix .`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv run pytest`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv run python -m build`})}),`\n`]})})})]}),_jsxs(Tab,{title:`pip + venv`,id:`pip-%2B-venv`,children:[_jsxs(_components.p,{children:[`Configurazione Python tradizionale con pip e venv. Da usare quando il progetto si basa su `,_jsx(_components.code,{children:`requirements.txt`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`22`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` python3 -m venv .venv`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source .venv/bin/activate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pip install -r requirements.txt`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source .venv/bin/activate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` flake8 .`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source .venv/bin/activate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pytest`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source .venv/bin/activate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` python -m build`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`nodejs`,children:`Node.js`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`npm`,id:`npm`,children:[_jsx(_components.p,{children:`Configurazione Standard di Node.js con npm.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nvm install 20`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nvm use 20`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npx eslint .`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm test`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm run build`})}),`\n`]})})}),_jsx(Info,{children:_jsxs(_components.p,{children:[`Usa `,_jsx(_components.code,{children:`npm install`}),` (non `,_jsx(_components.code,{children:`npm ci`}),`) in `,_jsx(_components.code,{children:`maintenance`}),`. Esegue un aggiornamento incrementale, mentre `,_jsx(_components.code,{children:`npm ci`}),` elimina `,_jsx(_components.code,{children:`node_modules`}),` e reinstalla tutto da zero a ogni esecuzione del comando.`]})})]}),_jsxs(Tab,{title:`pnpm`,id:`pnpm`,children:[_jsx(_components.p,{children:`Per i progetti che usano pnpm.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install -g pnpm`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pnpm install --frozen-lockfile`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pnpm lint`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pnpm test`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pnpm build`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`go`,children:`Go`}),`\n`,_jsx(_components.p,{children:`Configurazione standard di Go con moduli.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`25`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`25`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GO_VERSION=1.23.5`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ARCH=$(dpkg --print-architecture)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://go.dev/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /usr/local`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export PATH=\"/usr/local/go/bin:$HOME/go/bin:$PATH\"' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/golang.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go mod download`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` golangci-lint run`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go test ./...`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go build ./...`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`java`,children:`Java`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Gradle`,id:`gradle`,children:[_jsx(_components.p,{children:`Configurazione di Java con Gradle.`}),_jsxs(Info,{children:[`JDK 17 è `,_jsx(_components.strong,{children:`preinstallato`}),` nell’immagine di base di Devin. Salta il passaggio di installazione del JDK se OpenJDK 17 predefinito è sufficiente.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`32`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`32`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 17`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Gradle`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GRADLE_VERSION=8.12`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` -o /tmp/gradle.zip`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo unzip -qo /tmp/gradle.zip -d /opt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" sudo ln -sf /opt/gradle-${GRADLE_VERSION}/bin/gradle /usr/local/bin/gradle\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rm /tmp/gradle.zip`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./gradlew dependencies`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./gradlew check`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./gradlew test`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./gradlew build`})}),`\n`]})})})]}),_jsxs(Tab,{title:`Maven`,id:`maven`,children:[_jsx(_components.p,{children:`Configurazione di Java con Maven.`}),_jsxs(Info,{children:[`JDK 17 è `,_jsx(_components.strong,{children:`preinstallato`}),` nell’immagine di base di Devin. Salta il passaggio di installazione del JDK se OpenJDK 17 predefinito è sufficiente.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`26`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`26`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 17`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Maven`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` MAVEN_VERSION=3.9.9`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /opt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" sudo ln -sf /opt/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/local/bin/mvn\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mvn dependency:resolve`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mvn test`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mvn package`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`ruby-on-rails`,children:`Ruby on Rails`}),`\n`,_jsx(_components.p,{children:`Configurazione di Rails con PostgreSQL.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`22`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Ruby 3.3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq ruby-full libpq-dev postgresql-client`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bundle install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rails db:migrate`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bundle exec rubocop`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bundle exec rspec`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rails assets:precompile`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`rust`,children:`Rust`}),`\n`,_jsx(_components.p,{children:`Configurazione Rust standard con Cargo.`}),`\n`,_jsxs(Info,{children:[_jsx(_components.strong,{children:`Rust`}),` (tramite rustup) e `,_jsx(_components.strong,{children:`Cargo`}),` sono `,_jsx(_components.strong,{children:`preinstallati`}),` nell’immagine di base di Devin. Salta il passaggio di installazione se la toolchain stabile predefinita è sufficiente. Devi solo scaricare le dipendenze.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.cargo/env`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cargo fetch`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`lint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cargo clippy -- -D warnings`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cargo test`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cargo build --release`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`monorepos`,children:`Monorepo`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Multilingue`,id:`multilingue`,children:[_jsx(_components.p,{children:`Monorepo con frontend Node.js e backend Python. Ogni sottoprogetto ha le proprie voci di Knowledge.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`31`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`31`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install pnpm`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`npm install -g pnpm`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install uv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`curl -LsSf https://astral.sh/uv/install.sh | sh`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install frontend dependencies`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`(cd packages/frontend \u0026\u0026 pnpm install)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install backend dependencies`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`(cd packages/backend \u0026\u0026 uv sync)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Build shared library`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`(cd packages/shared \u0026\u0026 pnpm install \u0026\u0026 pnpm build)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`structure`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Questo è un monorepo con tre package:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" - `packages/frontend` — app React (TypeScript, pnpm)\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" - `packages/backend` — API Python (FastAPI, uv)\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" - `packages/shared` — utilità TypeScript condivise (da buildare prima del frontend)\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`frontend`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `cd packages/frontend \u0026\u0026 pnpm dev` per avviare il server di sviluppo.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `cd packages/frontend \u0026\u0026 pnpm lint` per eseguire il lint.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `cd packages/frontend \u0026\u0026 pnpm test` per eseguire i test.\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`backend`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `cd packages/backend \u0026\u0026 uv run uvicorn app.main:app --reload` per avviare l'API.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `cd packages/backend \u0026\u0026 uv run ruff check .` per eseguire il lint.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" Esegui `cd packages/backend \u0026\u0026 uv run pytest` per eseguire i test.\"})}),`\n`]})})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Usa le subshell `,_jsx(_components.code,{children:`(cd dir \u0026\u0026 command)`}),` invece di `,_jsx(_components.code,{children:`cd dir \u0026\u0026 command`}),`, così la directory di lavoro viene reimpostata tra un passaggio e l’altro.`]})})]}),_jsxs(Tab,{title:`Versioni multiple di JDK`,id:`versioni-multiple-di-jdk`,children:[_jsxs(_components.p,{children:[`Un monorepo Java in cui servizi diversi richiedono versioni diverse del JDK. Installa entrambi i JDK durante la configurazione, poi usa le voci di `,_jsx(_components.code,{children:`knowledge`}),` per indicare a Devin quale `,_jsx(_components.code,{children:`JAVA_HOME`}),` usare per ciascun servizio.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`40`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`40`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 17 (primary)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 11 (legacy service)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-11-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Warm dependency caches`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (cd services/api \u0026\u0026 ./gradlew dependencies --refresh-dependencies)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (cd services/legacy \u0026\u0026 ./gradlew dependencies --refresh-dependencies)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build_api`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Esegui la build del servizio API (JDK 17):`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cd services/api \u0026\u0026 ./gradlew clean build`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`build_legacy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Esegui la build del servizio legacy (JDK 11):`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cd services/legacy \u0026\u0026 ./gradlew clean build`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`test_all`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Esegui i test per tutti i servizi:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (cd services/api \u0026\u0026 ./gradlew test)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (cd services/legacy \u0026\u0026 ./gradlew test)`})}),`\n`]})})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`private-package-registries`,children:`Private package registries`}),`\n`,_jsxs(_components.p,{children:[`Configura i gestori di pacchetti in modo che risolvano le dipendenze dai registry privati. Imposta questi valori in `,_jsx(_components.strong,{children:`Settings > Environment > Blueprints > Org-wide setup`}),` (oppure sul singolo repo, se serve solo a uno).`]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Memorizza i riferimenti, non le credenziali espanse.`}),` I delimitatori heredoc tra apici, come `,_jsx(_components.code,{children:`\u003c\u003c'EOF'`}),`, preservano i riferimenti alle variabili all’interno del file. npm, Yarn Berry, Maven e Gradle sono in grado di risolvere i riferimenti mostrati di seguito al momento dell’esecuzione. pip non espande le variabili di shell in `,_jsx(_components.code,{children:`pip.conf`}),`: in quel caso usa le variabili d’ambiente. I file di setup della shell devono essere caricati esplicitamente con `,_jsx(_components.code,{children:`source`}),` nello stesso comando dello strumento; non dare per scontato che una nuova shell li carichi o aggiorni le credenziali.`]}),_jsx(_components.p,{children:`Gli URL scritti direttamente in configurazioni persistenti, come un indice Cargo, un mirror Docker o un mirror APT, non devono contenere credenziali. Mantieni l’authentication nei segreti separati mostrati in ciascun template.`}),_jsx(_components.p,{children:`Se hai usato un template più vecchio che scriveva le credenziali su disco, rimuovi quei file ed esegui il rebuild da una base pulita, non da uno snapshot che le contiene. Ruota le credenziali che potrebbero essere state acquisite.`})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Se il tuo registry privato usa una CA corporate, assicurati di installare prima il `,_jsx(_components.a,{href:`#corporate-ca-certificate`,children:`certificato CA`}),` a livello enterprise. La configurazione seguente presuppone che l’attendibilità HTTPS sia già stabilita.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`nodejs-registries`,children:`Registry Node.js`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`npm (ambito)`,id:`npm-ambito`,children:[_jsxs(_components.p,{children:[`Configura npm per risolvere i pacchetti con ambito (ad es. `,_jsx(_components.code,{children:`@myorg/*`}),`) da un registry privato, mentre i pacchetti pubblici continuano a provenire dal registry npm predefinito.`]}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GITHUB_PACKAGES_TOKEN`}),` — Token di accesso personale o token GitHub App con ambito `,_jsx(_components.code,{children:`read:packages`})]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure npm scoped registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set @myorg:registry https://npm.pkg.github.com`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set //npm.pkg.github.com/:_authToken '${GITHUB_PACKAGES_TOKEN}'\"})}),`\n`]})})}),_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`Sostituisci `,_jsx(_components.code,{children:`@myorg`}),` con il tuo scope npm. URL comuni dei registry privati:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitHub Packages:`}),` `,_jsx(_components.code,{children:`https://npm.pkg.github.com`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/npm/npm-virtual`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/npm-group`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitLab:`}),` `,_jsx(_components.code,{children:`https://gitlab.example.com/api/v4/packages/npm`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AWS CodeArtifact:`}),` `,_jsx(_components.code,{children:`https://\u003cdomain>.d.codeartifact.\u003cregion>.amazonaws.com/npm/\u003crepo>`})]}),`\n`]})]})]}),_jsxs(Tab,{title:`npm (mirror completo)`,id:`npm-mirror-completo`,children:[_jsxs(_components.p,{children:[`Instrada `,_jsx(_components.strong,{children:`tutti`}),` i pacchetti npm attraverso il tuo registry privato (non solo i pacchetti con ambito).`]}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-1`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NPM_REGISTRY_URL`}),` — URL completo del tuo registry npm (ad es. `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/npm/npm-virtual`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NPM_REGISTRY_HOST`}),` — Solo hostname, senza protocollo (ad es. `,_jsx(_components.code,{children:`artifactory.example.com`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_TOKEN`}),` — Token di autenticazione npm per il registry`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure npm to use private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${NPM_REGISTRY_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set \"//\\${NPM_REGISTRY_HOST}/:_authToken\" '\\${REGISTRY_TOKEN}'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set strict-ssl true`})}),`\n`]})})})]}),_jsxs(Tab,{title:`pnpm`,id:`pnpm-2`,children:[_jsx(_components.p,{children:`Configura pnpm per risolvere i pacchetti da un registry privato.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-2`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NPM_REGISTRY_URL`}),` — URL completo del tuo registry npm`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NPM_REGISTRY_HOST`}),` — Solo hostname, senza protocollo`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_TOKEN`}),` — Token di autenticazione npm per il registry`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install pnpm`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`npm install -g pnpm`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure pnpm for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${NPM_REGISTRY_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set \"//\\${NPM_REGISTRY_HOST}/:_authToken\" '\\${REGISTRY_TOKEN}'`})}),`\n`]})})})]}),_jsxs(Tab,{title:`Yarn`,id:`yarn`,children:[_jsx(_components.p,{children:`Configura Yarn (Classic v1 o Berry v2+) per risolvere i pacchetti da un registry privato.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-3`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NPM_REGISTRY_URL`}),` — URL completo del tuo registry npm/Yarn`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_TOKEN`}),` — Token di autenticazione per il registry`]}),`\n`]})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Yarn Classic (v1):`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Yarn Classic`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`npm install -g yarn`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Yarn for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${NPM_REGISTRY_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set //registry.example.com/:_authToken '${REGISTRY_TOKEN}'\"})}),`\n`]})})}),_jsxs(_components.p,{children:[`Sostituisci `,_jsx(_components.code,{children:`registry.example.com`}),` con l’host del tuo registry. Yarn Classic legge il file `,_jsx(_components.code,{children:`.npmrc`}),` di npm.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Yarn Berry (v2+):`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Yarn Berry for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" yarn config set npmRegistryServer '${NPM_REGISTRY_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" yarn config set npmAuthToken '${REGISTRY_TOKEN}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Per i pacchetti con ambito:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # yarn config set npmScopes.myorg.npmRegistryServer \"https://npm.pkg.github.com\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" # yarn config set npmScopes.myorg.npmAuthToken '${GITHUB_PACKAGES_TOKEN}'\"})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`python-registries`,children:`Registry Python`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`pip / uv`,id:`pip-%2F-uv`,children:[_jsx(_components.p,{children:`Configura pip e uv per recuperare i pacchetti dal tuo registry PyPI privato (ad es. Nexus, Artifactory).`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-4`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PYPI_REGISTRY_URL`}),` — URL completo del tuo indice PyPI, incluse le credenziali se richieste (ad es. `,_jsx(_components.code,{children:`https://user:token@nexus.example.com/repository/pypi-proxy/simple`}),`)`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configura pip/uv per il registry privato`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/private-pypi.sh \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export PIP_INDEX_URL=\"$PYPI_REGISTRY_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export UV_INDEX_URL=\"$PYPI_REGISTRY_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_python_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Con PYPI_REGISTRY_URL disponibile nell'ambiente del comando, esegui:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/private-pypi.sh \u0026\u0026 uv sync`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Oppure:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/private-pypi.sh \u0026\u0026 pip install -r requirements.txt`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Per precaricare le dipendenze durante un build, aggiungi lo stesso comando `,_jsx(_components.code,{children:`source ... \u0026\u0026`}),` a `,_jsx(_components.code,{children:`maintenance`}),` dopo il passaggio di configurazione. Codifica in percent-encoding i caratteri speciali nelle credenziali dell’URL.`]}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`URL comuni dei registry PyPI:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/pypi/pypi-virtual/simple`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/pypi-proxy/simple`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AWS CodeArtifact:`}),` `,_jsx(_components.code,{children:`https://aws:TOKEN@domain-owner.d.codeartifact.region.amazonaws.com/pypi/repo/simple/`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Azure Artifacts:`}),` `,_jsx(_components.code,{children:`https://pkgs.dev.azure.com/org/project/_packaging/feed/pypi/simple`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitLab:`}),` `,_jsx(_components.code,{children:`https://gitlab.example.com/api/v4/groups/\u003cgroup-id>/-/packages/pypi/simple`})]}),`\n`]})]})]}),_jsxs(Tab,{title:`Poetry`,id:`poetry`,children:[_jsx(_components.p,{children:`Configura Poetry per recuperare i pacchetti da un registry PyPI privato.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-5`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`POETRY_REGISTRY_URL`}),` — URL completo del tuo registry compatibile con PyPI`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_USER`}),` — Nome utente del registry`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_PASS`}),` — Password del registry o token API`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Installa Poetry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`curl -sSL https://install.python-poetry.org | python3 -`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configura Poetry per il registry privato`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` poetry config repositories.private \"$POETRY_REGISTRY_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/private-poetry.sh \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export POETRY_HTTP_BASIC_PRIVATE_USERNAME=\"$REGISTRY_USER\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export POETRY_HTTP_BASIC_PRIVATE_PASSWORD=\"$REGISTRY_PASS\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_poetry_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Con REGISTRY_USER e REGISTRY_PASS disponibili, esegui:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/private-poetry.sh \u0026\u0026 poetry install`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Per l’installazione delle dipendenze, dichiara anche la sorgente del pacchetto `,_jsx(_components.code,{children:`private`}),` nel `,_jsx(_components.code,{children:`pyproject.toml`}),` del tuo progetto. `,_jsx(_components.code,{children:`poetry config repositories.private`}),` configura il repository di pubblicazione; le credenziali dell’ambiente si applicano al nome della sorgente corrispondente.`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`jvm-registries`,children:`Registry JVM`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Maven`,id:`maven-2`,children:[_jsx(_components.p,{children:`Installa il JDK e configura Maven in modo che tutta la risoluzione delle dipendenze passi attraverso il tuo registry privato (ad es., Artifactory, Nexus).`}),_jsx(Info,{children:_jsxs(_components.p,{children:[`JDK 17 è `,_jsx(_components.strong,{children:`preinstallato`}),` nell’immagine di base di Devin. Salta il passaggio di installazione se l’OpenJDK 17 predefinito è sufficiente. Ti servono solo l’installazione di Maven e la configurazione del registry.`]})}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-6`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAVEN_REGISTRY_URL`}),` — URL del tuo registry Maven (ad es., `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/maven-virtual`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_USER`}),` — Nome utente del registry`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_PASS`}),` — Password del registry o token API`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`37`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`37`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 17`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Maven`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` MAVEN_VERSION=3.9.9`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /opt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" sudo ln -sf /opt/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/local/bin/mvn\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Maven for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.m2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.m2/settings.xml \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003csettings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>private-registry\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrorOf>*\u003c/mirrorOf>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003curl>${env.MAVEN_REGISTRY_URL}\u003c/url>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cservers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cserver>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>private-registry\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cusername>${env.REGISTRY_USER}\u003c/username>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cpassword>${env.REGISTRY_PASS}\u003c/password>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/server>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/servers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/settings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`]})})}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`Pattern di URL comuni dei registry Maven:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/maven-virtual`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/maven-public`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Azure Artifacts:`}),` `,_jsx(_components.code,{children:`https://pkgs.dev.azure.com/org/project/_packaging/feed/maven/v1`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitHub Packages:`}),` `,_jsx(_components.code,{children:`https://maven.pkg.github.com`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitLab:`}),` `,_jsx(_components.code,{children:`https://gitlab.example.com/api/v4/groups/\u003cgroup-id>/-/packages/maven`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AWS CodeArtifact:`}),` `,_jsx(_components.code,{children:`https://\u003cdomain>.d.codeartifact.\u003cregion>.amazonaws.com/maven/\u003crepo>`})]}),`\n`]})]})]}),_jsxs(Tab,{title:`Gradle`,id:`gradle-2`,children:[_jsx(_components.p,{children:`Installa il JDK e configura Gradle per risolvere tutte le dipendenze tramite il tuo registry privato.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[`JDK 17 è `,_jsx(_components.strong,{children:`preinstallato`}),` nell’immagine di base di Devin. Salta il passaggio di installazione del JDK se la versione predefinita è sufficiente.`]})}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-7`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GRADLE_REGISTRY_URL`}),` — URL del tuo registry Gradle/Maven`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_USER`}),` — Nome utente del registry`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_PASS`}),` — Password del registry o token API`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`35`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`35`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 17`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Gradle`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GRADLE_VERSION=8.12`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` -o /tmp/gradle.zip`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo unzip -qo /tmp/gradle.zip -d /opt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" sudo ln -sf /opt/gradle-${GRADLE_VERSION}/bin/gradle /usr/local/bin/gradle\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rm /tmp/gradle.zip`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Gradle for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.gradle`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.gradle/init.gradle \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` allprojects {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` repositories {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` maven {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` url System.getenv(\"GRADLE_REGISTRY_URL\")`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` credentials {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` username = System.getenv(\"REGISTRY_USER\")`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` password = System.getenv(\"REGISTRY_PASS\")`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` allowInsecureProtocol = false`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`other-registries`,children:`Altri registry`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Proxy dei moduli Go`,id:`proxy-dei-moduli-go`,children:[_jsx(_components.p,{children:`Installa Go e configuralo per risolvere i moduli tramite un proxy di moduli privato (ad es. Athens, Artifactory o un endpoint GOPROXY).`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-8`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GO_PROXY_URL`}),` — URL del tuo proxy di moduli Go (ad es. `,_jsx(_components.code,{children:`https://athens.corp.internal`}),`)`]}),`\n`]})}),_jsxs(_components.p,{children:[`Collega il Git provider e concedi l’accesso ai repository che ospitano i tuoi moduli privati tramite le `,_jsx(_components.a,{href:`/it/integrations/overview`,children:`integrazioni Git`}),`. Usa normali git URL HTTPS con l’authentication configurata di Devin. Non incorporare un token in una riscrittura del git URL.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`23`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`23`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Go`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GO_VERSION=1.23.5`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ARCH=$(dpkg --print-architecture)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://go.dev/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /usr/local`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export PATH=\"/usr/local/go/bin:$HOME/go/bin:$PATH\"' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/golang.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Go for private modules`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'GOENV' | sudo tee /etc/profile.d/go-private.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export GOPROXY=\"$GO_PROXY_URL,direct\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export GONOSUMCHECK=\"corp.internal/*,github.com/myorg/*\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export GOPRIVATE=\"corp.internal/*,github.com/myorg/*\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GOENV`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_go_modules`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` From the repository root, with GO_PROXY_URL available, run:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/go-private.sh \u0026\u0026 go mod download`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Per precaricare la cache dei moduli durante le build, aggiungi quel comando alla sezione `,_jsx(_components.code,{children:`maintenance`}),` del blueprint del `,_jsx(_components.strong,{children:`repository`}),`, dove `,_jsx(_components.code,{children:`go.mod`}),` è disponibile. Non eseguirlo nell’org-wide setup, che viene eseguito prima della clonazione dei repo.`]}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`Pattern comuni di URL per il proxy Go:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/go-virtual`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/go-proxy`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Athens:`}),` `,_jsx(_components.code,{children:`https://athens.corp.internal`})]}),`\n`]})]})]}),_jsxs(Accordion,{title:`.NET / NuGet`,id:`net-nuget`,children:[_jsx(_components.p,{children:`Configura NuGet per risolvere i package da un feed privato.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-9`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NUGET_SOURCE_URL`}),` — URL del tuo feed NuGet`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NuGetPackageSourceCredentials_private`}),` — Credenziali del feed nel formato environment di NuGet: `,_jsx(_components.code,{children:`Username=any;Password=\u003cPAT>`}),` (usa lo username richiesto dal tuo feed)`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`20`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install .NET SDK`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -fsSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 8.0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export PATH=\"$HOME/.dotnet:$PATH\"' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/dotnet.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure NuGet for private feed`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dotnet nuget add source \"$NUGET_SOURCE_URL\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --name private 2>/dev/null || \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dotnet nuget update source private \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --source \"$NUGET_SOURCE_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_nuget_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Run dotnet restore with NuGetPackageSourceCredentials_private in its`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` environment. The suffix must match the source name \"private\".`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Docker`,id:`docker`,children:[_jsx(_components.p,{children:`Configura Docker per effettuare il pull da un container registry privato.`}),_jsx(_components.p,{children:`Il login di Docker può scrivere le credenziali nella propria directory di configurazione. Usa una directory isolata per ogni operazione e rimuovila anche se il pull non riesce. Ripeti la sequenza di login e pull ogni volta che ti serve un’altra image nella stessa sessione.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-10`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKER_MIRROR_URL`}),` `,_jsx(_components.em,{children:`(opzionale)`}),` — URL del tuo mirror di Docker Hub (ad es. `,_jsx(_components.code,{children:`https://mirror.corp.internal`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKER_REGISTRY_URL`}),` — URL del tuo container registry privato (ad es. `,_jsx(_components.code,{children:`registry.corp.internal:5000`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKER_REGISTRY_USER`}),` — Nome utente del registry`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKER_REGISTRY_PASS`}),` — Password o token API del registry`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`31`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`31`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Create Docker config directory`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`sudo mkdir -p /etc/docker`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Docker for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Configura il mirror del registry (opzionale — instrada i pull da Docker Hub attraverso il tuo registry)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c EOF | sudo tee /etc/docker/daemon.json > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"registry-mirrors\": [\"$DOCKER_MIRROR_URL\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo systemctl restart docker || true`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_container_images`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With the registry secrets available, run this in one shell.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Replace team/image:tag with the image to pull:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -euo pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` umask 077`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DOCKER_CONFIG=$(mktemp -d)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export DOCKER_CONFIG`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trap 'rm -rf \"$DOCKER_CONFIG\"' EXIT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$DOCKER_REGISTRY_PASS\" |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docker login \"$DOCKER_REGISTRY_URL\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --username \"$DOCKER_REGISTRY_USER\" --password-stdin`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docker pull \"$DOCKER_REGISTRY_URL/team/image:tag\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` )`})}),`\n`]})})}),_jsx(_components.p,{children:`Per memorizzare nella cache un’image nello snapshot, inserisci la stessa subshell completa in un passaggio di build. Non suddividere login e pulizia in passaggi diversi e verifica che la pulizia vada a buon fine prima di creare l’image. L’URL di un mirror del registry non deve contenere credentials.`}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`URL comuni dei container registry:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Amazon ECR:`}),` `,_jsx(_components.code,{children:`\u003caccount-id>.dkr.ecr.\u003cregion>.amazonaws.com`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Azure Container Registry:`}),` `,_jsx(_components.code,{children:`\u003cname>.azurecr.io`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Google Artifact Registry:`}),` `,_jsx(_components.code,{children:`\u003cregion>-docker.pkg.dev`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitHub Container Registry:`}),` `,_jsx(_components.code,{children:`ghcr.io`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitLab Container Registry:`}),` `,_jsx(_components.code,{children:`registry.gitlab.example.com`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com:8443`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`JFrog:`}),` `,_jsx(_components.code,{children:`\u003cname>.jfrog.io`})]}),`\n`]})]})]}),_jsxs(Accordion,{title:`Rust / Cargo`,id:`rust-cargo`,children:[_jsx(_components.p,{children:`Configura Cargo per risolvere i crate da un registry privato.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Rust`}),` (tramite rustup) e `,_jsx(_components.strong,{children:`Cargo`}),` sono `,_jsx(_components.strong,{children:`preinstallati`}),` nell’immagine di base di Devin. Salta il passaggio di installazione se la toolchain stable predefinita è sufficiente: ti serve solo la configurazione del registry.`]})}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-11`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CARGO_REGISTRY_INDEX`}),` — URL dell’indice del registry privato (ad es. `,_jsx(_components.code,{children:`sparse+https://cargo.corp.internal/api/v1/crates/`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CARGO_REGISTRIES_PRIVATE_TOKEN`}),` — Token di autenticazione per il registry denominato `,_jsx(_components.code,{children:`private`})]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`30`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`30`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Rust`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sh -s -- -y --default-toolchain stable`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'source \"$HOME/.cargo/env\"' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/rust.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Cargo for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.cargo`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.cargo/config.toml \u003c\u003c EOF`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [registry]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` global-credential-providers = [\"cargo:token\"]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [registries.private]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` index = \"$CARGO_REGISTRY_INDEX\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [source.crates-io]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` replace-with = \"private\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [source.private]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` registry = \"$CARGO_REGISTRY_INDEX\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_rust_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Run cargo fetch with CARGO_REGISTRIES_PRIVATE_TOKEN in its environment.`})}),`\n`]})})}),_jsxs(_components.p,{children:[`L’URL dell’index del registry non deve contenere credenziali. Il provider `,_jsx(_components.code,{children:`cargo:token`}),` di Cargo legge dall’ambiente il token del registry indicato; non eseguire `,_jsx(_components.code,{children:`cargo login`}),` in un passaggio di build.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Se devi solo `,_jsx(_components.strong,{children:`aggiungere`}),` un registry privato senza sostituire crates.io, rimuovi le sezioni `,_jsx(_components.code,{children:`[source.crates-io]`}),` e `,_jsx(_components.code,{children:`[source.private]`}),` e usa `,_jsx(_components.code,{children:`cargo install --registry private`}),` oppure `,_jsx(_components.code,{children:`[dependencies] my-crate = { version = \"1.0\", registry = \"private\" }`}),` in `,_jsx(_components.code,{children:`Cargo.toml`}),`.`]})})]}),_jsxs(Accordion,{title:`Ruby / Bundler`,id:`ruby-bundler`,children:[_jsx(_components.p,{children:`Installa Ruby e configura Bundler per risolvere le gem da un gem server privato.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-12`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GEM_SERVER_URL`}),` — URL del tuo gem server privato (ad es. `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/gems/gems-virtual`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`BUNDLE_ARTIFACTORY__EXAMPLE__COM`}),` — `,_jsx(_components.code,{children:`username:password`}),` per `,_jsx(_components.code,{children:`artifactory.example.com`}),`; modifica il nome della variabile in base al tuo gem server`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Ruby`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq ruby-full`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Bundler for private gem server`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bundle config set mirror.https://rubygems.org \"$GEM_SERVER_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_ruby_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Run bundle install with BUNDLE_ARTIFACTORY__EXAMPLE__COM in its environment.`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Usa un `,_jsx(_components.code,{children:`GEM_SERVER_URL`}),` senza credenziali. Per la variabile delle credenziali di Bundler, anteponi `,_jsx(_components.code,{children:`BUNDLE_`}),` all’hostname in maiuscolo, sostituisci ogni punto con `,_jsx(_components.code,{children:`__`}),` e ogni trattino con `,_jsx(_components.code,{children:`___`}),`.`]}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`Pattern comuni di URL dei gem server:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/gems/gems-virtual`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/rubygems-proxy`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Gemfury:`}),` `,_jsx(_components.code,{children:`https://gem.fury.io/\u003corg>`})]}),`\n`]})]})]}),_jsxs(Accordion,{title:`PHP / Composer`,id:`php-composer`,children:[_jsx(_components.p,{children:`Installa PHP e configura Composer per risolvere i pacchetti da un registry Packagist o Satis privato.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-13`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`COMPOSER_REGISTRY_URL`}),` — URL del tuo registry Composer privato (ad es. `,_jsx(_components.code,{children:`https://repo.packagist.com/\u003corg>`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`COMPOSER_AUTH`}),` — credenziali JSON per l’host del registry, ad esempio `,_jsx(_components.code,{children:`{\"http-basic\":{\"repo.packagist.com\":{\"username\":\"\u003cuser>\",\"password\":\"\u003ctoken>\"}}}`})]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`22`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install PHP and Composer`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` php-cli php-mbstring php-xml php-curl unzip`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Installa Composer`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -sS https://getcomposer.org/installer | php`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo mv composer.phar /usr/local/bin/composer`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Composer for private registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` composer config --global repositories.private \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` composer \"$COMPOSER_REGISTRY_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_php_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Run composer install with COMPOSER_AUTH in its environment.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Do not save these credentials to auth.json.`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Usa un `,_jsx(_components.code,{children:`COMPOSER_REGISTRY_URL`}),` senza credenziali.`]}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`Pattern comuni di URL per i registry Composer:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/composer/packagist-virtual`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/packagist-proxy`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Private Packagist:`}),` `,_jsx(_components.code,{children:`https://repo.packagist.com/\u003corg>`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Satis:`}),` `,_jsx(_components.code,{children:`https://satis.corp.internal`})]}),`\n`]})]})]}),_jsxs(Accordion,{title:`Rinnovo del token AWS CodeArtifact`,id:`rinnovo-del-token-aws-codeartifact`,children:[_jsx(_components.p,{children:`I token di AWS CodeArtifact scadono normalmente dopo 12 ore. Crea uno script contenente riferimenti letterali, quindi eseguine esplicitamente il source nello stesso shell command di npm, pip o Maven per ottenere un token. Salvare lo script in un blueprint non ne comporta l’esecuzione all’avvio della sessione.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`awscli`}),` è pre-installato`]}),` sull’immagine di base di Devin. Ti servono solo l’aggiornamento del token e la configurazione del registry.`]})}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-14`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`AWS_ACCESS_KEY_ID`}),` e `,_jsx(_components.code,{children:`AWS_SECRET_ACCESS_KEY`}),` — credenziali IAM con le autorizzazioni `,_jsx(_components.code,{children:`codeartifact:GetAuthorizationToken`}),` e `,_jsx(_components.code,{children:`sts:GetServiceBearerToken`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CA_DOMAIN`}),` — il nome del tuo dominio CodeArtifact`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CA_DOMAIN_OWNER`}),` — ID dell’AWS account proprietario del dominio`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CA_REGION`}),` — regione AWS (ad es. `,_jsx(_components.code,{children:`us-east-1`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CA_NPM_REPO`}),`, `,_jsx(_components.code,{children:`CA_PYPI_REPO`}),`, `,_jsx(_components.code,{children:`CA_MAVEN_REPO`}),` — nomi dei repository per ciascun ecosistema`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`49`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`49`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure CodeArtifact clients and refresh script`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/codeartifact.sh \u003c\u003c'SCRIPT'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --domain \"$CA_DOMAIN\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --domain-owner \"$CA_DOMAIN_OWNER\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --region \"$CA_REGION\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --query authorizationToken \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --output text) || return`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export CODEARTIFACT_AUTH_TOKEN`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' export CA_ENDPOINT=\"https://${CA_DOMAIN}-${CA_DOMAIN_OWNER}.d.codeartifact.${CA_REGION}.amazonaws.com\"'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' export PIP_INDEX_URL=\"https://aws:${CODEARTIFACT_AUTH_TOKEN}@${CA_DOMAIN}-${CA_DOMAIN_OWNER}.d.codeartifact.${CA_REGION}.amazonaws.com/pypi/${CA_PYPI_REPO}/simple/\"'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` SCRIPT`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Configura npm`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${CA_ENDPOINT}/npm/${CA_NPM_REPO}/'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set \\\"//${CA_DOMAIN}-${CA_DOMAIN_OWNER}.d.codeartifact.${CA_REGION}.amazonaws.com/npm/${CA_NPM_REPO}/:_authToken\\\" '${CODEARTIFACT_AUTH_TOKEN}'\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Configura Maven (opzionale)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.m2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.m2/settings.xml \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003csettings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cservers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cserver>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>codeartifact\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cusername>aws\u003c/username>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cpassword>${env.CODEARTIFACT_AUTH_TOKEN}\u003c/password>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/server>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/servers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>codeartifact\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrorOf>*\u003c/mirrorOf>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003curl>${env.CA_ENDPOINT}/maven/${env.CA_MAVEN_REPO}/\u003c/url>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/settings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`codeartifact_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With AWS credentials and the CA_* variables available, run the appropriate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` command in one shell; source the script again for later invocations:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/codeartifact.sh \u0026\u0026 npm install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/codeartifact.sh \u0026\u0026 pip install -r requirements.txt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/codeartifact.sh \u0026\u0026 mvn dependency:resolve`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Per precaricare una cache delle dipendenze nello snapshot, aggiungi il comando `,_jsx(_components.code,{children:`source ... \u0026\u0026`}),` appropriato come passaggio di build successivo. Il token recuperato rimane nell’ambiente di quella shell: non renderlo persistente con `,_jsx(_components.code,{children:`aws codeartifact login`}),`, con `,_jsx(_components.code,{children:`npm config set`}),` usando un token espanso o con un file `,_jsx(_components.code,{children:`pip.conf`}),` contenente credenziali.`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`enterprise-infrastructure`,children:`Infrastruttura Enterprise`}),`\n`,_jsxs(_components.p,{children:[`Infrastruttura a livello di macchina valida per tutte le org e repo. Impostala in `,_jsx(_components.strong,{children:`Enterprise Settings > Environments > Blueprint`}),` (a livello di Enterprise) oppure in `,_jsx(_components.strong,{children:`Settings > Environment > Blueprints > Org-wide setup`}),` (a livello di org).`]}),`\n`,_jsx(Heading,{level:`3`,id:`network-and-connectivity`,children:`Rete e connettività`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Certificato CA aziendale`,id:`certificato-ca-aziendale`,children:[_jsx(_components.p,{children:`La tua organizzazione utilizza un’autorità di certificazione privata per i servizi interni. Devin richiede il certificato radice per accedere ai registry interni e agli strumenti tramite HTTPS.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-15`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_ROOT_CA_B64`}),` — certificato PEM codificato in Base64 della tua CA aziendale. Genera con: `,_jsx(_components.code,{children:`cat corp-root-ca.crt | base64 -w0`})]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install corporate CA certificate`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_ROOT_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-ca-certificates`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-root-ca.crt' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/node-ca.sh > /dev/null`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Questi input sono certificati pubblici. `,_jsx(_components.code,{children:`openssl x509`}),` scrive solo il certificato analizzato, quindi un’eventuale chiave privata inclusa per errore non viene copiata nell’archivio di attendibilità. Fornisci ogni certificato CA separatamente, come nell’esempio seguente.`]})]}),_jsxs(Accordion,{title:`Certificati CA multipli`,id:`certificati-ca-multipli`,children:[_jsx(_components.p,{children:`Se la tua organizzazione utilizza più certificati CA (ad es. CA distinte per diversi servizi interni).`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-16`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_ROOT_CA_B64`}),` — certificato CA principale codificato in Base64`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_INTERMEDIATE_CA_B64`}),` — certificato CA intermedio codificato in Base64`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install corporate CA certificates`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_ROOT_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_INTERMEDIATE_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-intermediate-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-ca-certificates`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Crea un bundle combinato per gli strumenti che richiedono un singolo file CA`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat /usr/local/share/ca-certificates/corp-*.crt \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-bundle.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-bundle.crt' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/node-ca.sh > /dev/null`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Proxy HTTP/HTTPS`,id:`proxy-http-https`,children:[_jsx(_components.p,{children:`Instrada tutto il traffico di rete tramite un proxy aziendale.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-17`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTP_PROXY`}),` — URL del proxy HTTP (ad es. `,_jsx(_components.code,{children:`http://proxy.corp.example.com:8080`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTPS_PROXY`}),` — URL del proxy HTTPS`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_NO_PROXY`}),` — elenco di host, separati da virgole, da escludere dal proxy (ad es. `,_jsx(_components.code,{children:`localhost,127.0.0.1,.corp.example.com`}),`)`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`20`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure system-wide proxy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export http_proxy=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export https_proxy=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export no_proxy=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTP_PROXY=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTPS_PROXY=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export NO_PROXY=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PROXY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`proxy_commands`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With CORP_HTTP_PROXY, CORP_HTTPS_PROXY and CORP_NO_PROXY available, source`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` the proxy setup in each command that needs it, for example:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 npm install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 git fetch`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Proxy autenticato`,id:`proxy-autenticato`,children:[_jsx(_components.p,{children:`Se il proxy aziendale richiede l’autenticazione tramite nome utente/password.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-18`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PROXY_USER`}),` — Nome utente del proxy`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PROXY_PASS`}),` — Password del proxy`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PROXY_HOST`}),` — hostname e porta del proxy (ad es. `,_jsx(_components.code,{children:`proxy.corp.example.com:8080`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_NO_PROXY`}),` — host da escludere dal proxy`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure authenticated proxy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' export http_proxy=\"http://${PROXY_USER}:${PROXY_PASS}@${PROXY_HOST}\"'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export https_proxy=\"$http_proxy\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export no_proxy=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTP_PROXY=\"$http_proxy\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTPS_PROXY=\"$https_proxy\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export NO_PROXY=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PROXY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`authenticated_proxy_commands`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With the proxy secrets available, source the proxy setup in the same`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` command as each tool that needs it, for example:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 git fetch`})}),`\n`]})})}),_jsx(_components.p,{children:`Applica la codifica percent-encoding ai caratteri speciali nel nome utente e nella password del proxy. Git e npm possono utilizzare le variabili d’ambiente del proxy; non copiare un URL del proxy contenente credenziali nella loro configurazione persistente.`})]}),_jsxs(Accordion,{title:`Certificato CA + proxy (combinati)`,id:`certificato-ca-proxy-combinati`,children:[_jsx(_components.p,{children:`Configurazione combinata per ambienti che richiedono sia una CA aziendale sia un proxy. Questa configurazione è comune negli ambienti enterprise in cui i servizi interni usano certificati privati e tutto il traffico deve passare tramite un proxy.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-19`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_ROOT_CA_B64`}),` — certificato CA aziendale codificato in Base64`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTP_PROXY`}),`, `,_jsx(_components.code,{children:`CORP_HTTPS_PROXY`}),` — URL del proxy`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_NO_PROXY`}),` — host da escludere dal proxy`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`27`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`27`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install corporate CA certificate`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_ROOT_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-ca-certificates`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-root-ca.crt' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/node-ca.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure system-wide proxy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export http_proxy=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export https_proxy=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export no_proxy=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTP_PROXY=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTPS_PROXY=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export NO_PROXY=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PROXY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`proxy_commands`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With the proxy secrets available, run:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 git fetch`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Connessione VPN`,id:`connessione-vpn`,children:[_jsx(_components.p,{children:`I tuoi registry privati, i server Git o altri servizi interni sono raggiungibili solo tramite VPN. Installa il client VPN nel blueprint. Stabilisci il tunnel esplicitamente per le operazioni che lo richiedono, quindi disconnettiti e rimuovi i file delle credenziali al termine.`}),_jsxs(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-20`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`OpenVPN:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VPN_CONFIG_B64`}),` — file di configurazione OpenVPN (`,_jsx(_components.code,{children:`.ovpn`}),`) codificato in Base64. Genera con: `,_jsx(_components.code,{children:`cat corp.ovpn | base64 -w0`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VPN_AUTH_USER`}),` `,_jsx(_components.em,{children:`(facoltativo)`}),` — nome utente VPN, se la VPN richiede l’autenticazione con nome utente/password`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VPN_AUTH_PASS`}),` `,_jsx(_components.em,{children:`(facoltativo)`}),` — password VPN`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`WireGuard:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`WG_CONFIG_B64`}),` — file di configurazione WireGuard codificato in Base64. Genera con: `,_jsx(_components.code,{children:`cat wg0.conf | base64 -w0`})]}),`\n`]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`OpenVPN:`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install OpenVPN`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openvpn`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Esegui esplicitamente questo block in una sessione in cui i segreti VPN sono disponibili. Sostituisci il comando `,_jsx(_components.code,{children:`curl`}),` con l’operazione che richiede il tunnel. La configurazione deve contenere inline i certificati e le chiavi richiesti e usare `,_jsx(_components.code,{children:`dev tun0`}),`; non abilitare un servizio VPN persistente.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`25`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`25`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` set`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -euo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pipefail`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` umask`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 077`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` VPN_DIR`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mktemp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` cleanup`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [ `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/openvpn.pid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]; `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`then`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kill`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/openvpn.pid\")\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` fi`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -rf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` trap`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cleanup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EXIT`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_CONFIG_B64`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` base64`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp.conf\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [ `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' \"${'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`VPN_AUTH_USER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:-`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ] \u0026\u0026 [ `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' \"${'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`VPN_AUTH_PASS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:-`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]; `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`then`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s\\\\n%s\\\\n'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_AUTH_USER`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_AUTH_PASS`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/auth.txt\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'auth-user-pass %s/auth.txt\\\\n'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp.conf\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` fi`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` openvpn`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp.conf\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --writepid`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/openvpn.pid\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --daemon`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` i`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` $(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`seq`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 30`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`do`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` ip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` link`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` show`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tun0`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/dev/null`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` 2>\u00261`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`then`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`fi`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sleep`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` done`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` ip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` link`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` show`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tun0`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/dev/null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://service.corp.internal/health`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`WireGuard:`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install WireGuard`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq wireguard-tools`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Esegui esplicitamente questo block con `,_jsx(_components.code,{children:`WG_CONFIG_B64`}),` disponibile, sostituendo il comando `,_jsx(_components.code,{children:`curl`}),` con la tua operazione:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` set`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -euo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pipefail`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` umask`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 077`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` VPN_DIR`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mktemp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` cleanup`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wg-quick`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` down`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp.conf\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -rf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` trap`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cleanup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EXIT`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$WG_CONFIG_B64`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` base64`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp.conf\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wg-quick`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VPN_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp.conf\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://service.corp.internal/health`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Se un build dello snapshot richiede l’accesso VPN, racchiudi `,_jsx(_components.strong,{children:`tutto`}),` il lavoro dipendente nello stesso block, in modo che la pulizia venga completata prima della creazione dell’immagine. Spostare semplicemente la scrittura delle credential in `,_jsx(_components.code,{children:`maintenance`}),` non le rende temporanee. Non includere nello snapshot un tunnel attivo o una configurazione VPN privata.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Per maggiori dettagli sulla configurazione della VPN, consulta `,_jsx(_components.a,{href:`/it/onboard-devin/vpn`,children:`Configurazione della VPN`}),`.`]})})]}),_jsxs(Accordion,{title:`Risoluzione DNS personalizzata`,id:`risoluzione-dns-personalizzata`,children:[_jsx(_components.p,{children:`I tuoi servizi interni utilizzano nomi DNS privati che non possono essere risolti dal DNS pubblico.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure custom DNS resolution`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Aggiungi hostname interni`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'HOSTS' | sudo tee -a /etc/hosts > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 10.0.1.50 nexus.corp.internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 10.0.1.51 git.corp.internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 10.0.1.52 artifactory.corp.internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` HOSTS`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Facoltativamente configura nameserver personalizzati`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo mkdir -p /etc/systemd/resolved.conf.d`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'DNS' | sudo tee /etc/systemd/resolved.conf.d/corp.conf > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [Resolve]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DNS=10.0.0.53 10.0.0.54`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Domains=corp.internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DNS`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo systemctl restart systemd-resolved || true`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`identity-and-security`,children:`Identità e sicurezza`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`GPG commit signing`,id:`gpg-commit-signing`,children:[_jsxs(_components.p,{children:[`La tua organizzazione richiede che tutti i commit Git siano firmati e vuoi che GitHub contrassegni i commit di Devin come `,_jsx(_components.strong,{children:`Verified`}),`.`]}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-21`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GPG_PRIVATE_KEY_B64`}),` — chiave privata GPG codificata in Base64. Generala con: `,_jsx(_components.code,{children:`gpg --export-secret-keys \u003ckey-id> | base64 -w0`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GPG_SIGNING_KEY`}),` — impronta completa della chiave di firma`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GIT_USER_NAME`}),` — nome dell’autore Git (ad es. `,_jsx(_components.code,{children:`Devin AI`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GIT_USER_EMAIL`}),` — email dell’autore Git. `,_jsx(_components.strong,{children:`Deve corrispondere a un UID della chiave GPG`}),`, altrimenti GitHub non verificherà la firma.`]}),`\n`]})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Carica anche la chiave `,_jsx(_components.strong,{children:`pubblica`}),` corrispondente sull’account GitHub le cui credenziali Devin usa per il push (in `,_jsx(_components.a,{href:`https://github.com/settings/keys`,children:`GitHub Settings > SSH and GPG keys`}),`). GitHub contrassegna i commit come Verified solo se la chiave pubblica di firma è registrata sull’account che ha creato il commit.`]})}),_jsx(_components.p,{children:`Non importare chiavi di firma private durante le build dello snapshot. Dopo aver preparato le modifiche desiderate, esegui esplicitamente questo blocco in una sessione in cui i segreti indicati sono disponibili. Il blocco utilizza un keyring temporaneo e impostazioni Git valide solo per questo commit:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` set`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -euo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pipefail`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` umask`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 077`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` GNUPGHOME`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mktemp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` GNUPGHOME`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` trap`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'gpgconf --kill gpg-agent; rm -rf \"$GNUPGHOME\"'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EXIT`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$GPG_PRIVATE_KEY_B64`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` base64`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` gpg`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --batch`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --import`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` git`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` user.name=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$GIT_USER_NAME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` user.email=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$GIT_USER_EMAIL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` user.signingkey=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$GPG_SIGNING_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` commit.gpgsign=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gpg.program=gpg`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` commit`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Describe the change\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(_components.p,{children:`Se la chiave richiede una passphrase, completa il flusso approvato dell’agente GPG/pinentry durante l’operazione. Non salvare la passphrase o il keyring nel blueprint o nello snapshot. Ripeti la configurazione del keyring temporaneo per i commit o i tag firmati successivi.`})]}),_jsxs(Accordion,{title:`Identità Git e chiavi SSH`,id:`identita-git-e-chiavi-ssh`,children:[_jsx(_components.p,{children:`Configura l’identità Git e le chiavi SSH di Devin per accedere a server Git privati.`}),_jsxs(_components.p,{children:[`Per i Git provider supportati, usa preferibilmente le `,_jsx(_components.a,{href:`/it/integrations/overview`,children:`Git integrations`}),`. Per un server che richiede una chiave SSH esplicita, tieni la chiave privata fuori dalla build del blueprint e usala solo per l’operazione di sessione descritta di seguito.`]}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-22`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GIT_USER_NAME`}),` — nome dell’autore Git`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GIT_USER_EMAIL`}),` — email dell’autore Git`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SSH_PRIVATE_KEY_B64`}),` — chiave privata SSH codificata in Base64. Generala con: `,_jsx(_components.code,{children:`cat ~/.ssh/id_ed25519 | base64 -w0`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SSH_KNOWN_HOSTS_B64`}),` — voci di known hosts codificate in Base64 e verificate rispetto alle impronte delle chiavi host pubblicate dall’amministratore del tuo server`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure git identity`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` git config --global user.name \"$GIT_USER_NAME\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` git config --global user.email \"$GIT_USER_EMAIL\"`})}),`\n`]})})}),_jsx(_components.p,{children:`Esegui esplicitamente questo blocco nella sessione, sostituendo l’URL Git con quello del tuo server e della tua repo:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` set`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -euo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pipefail`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` umask`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 077`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` SSH_DIR`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mktemp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` trap`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'rm -rf \"$SSH_DIR\"'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EXIT`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SSH_PRIVATE_KEY_B64`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` base64`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SSH_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/id_ed25519\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SSH_KNOWN_HOSTS_B64`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` base64`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SSH_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/known_hosts\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` GIT_SSH_COMMAND`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ssh -F /dev/null -i '`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SSH_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/id_ed25519' -o IdentitiesOnly=yes -o UserKnownHostsFile='`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SSH_DIR`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/known_hosts' -o StrictHostKeyChecking=yes\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` git`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ls-remote`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` git@git.corp.internal:team/repo.git`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(Tip,{children:_jsx(_components.p,{children:`Se ti servono opzioni SSH personalizzate, aggiungile a questa invocazione senza copiare una chiave privata in una configurazione SSH persistente o nella home directory. Ripeti la configurazione per ogni operazione.`})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`system-configuration`,children:`Configurazione del sistema`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Pacchetti di sistema`,id:`pacchetti-di-sistema`,children:[_jsx(_components.p,{children:`Installa pacchetti di sistema che non sono presenti nell’immagine Devin predefinita (ad es. librerie native per l’elaborazione delle immagini o la generazione di PDF).`}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install system packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` libpq-dev \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` libmagickwand-dev \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` poppler-utils \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ffmpeg`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Variabili d'ambiente personalizzate`,id:`variabili-d-ambiente-personalizzate`,children:[_jsxs(_components.p,{children:[`Imposta variabili d’ambiente persistenti e non segrete da rendere disponibili in ogni sessione. Non scrivere valori segreti o credenziali derivate in `,_jsx(_components.code,{children:`$ENVRC`}),`.`]}),_jsxs(_components.p,{children:[`L’approccio consigliato è scrivere righe `,_jsx(_components.code,{children:`KEY=VALUE`}),` nel file `,_jsx(_components.code,{children:`$ENVRC`}),`. Le variabili scritte in `,_jsx(_components.code,{children:`$ENVRC`}),` vengono esportate automaticamente per tutti i passaggi successivi e per la sessione di Devin (in modo analogo a `,_jsx(_components.code,{children:`$GITHUB_ENV`}),` di GitHub Actions).`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Set custom environment variables`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo \"CORPORATE_ENV=production\" >> $ENVRC`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo \"DEFAULT_REGION=us-east-1\" >> $ENVRC`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo \"MAX_RETRIES=3\" >> $ENVRC`})}),`\n`]})})}),_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`Puoi anche scrivere le variabili d’ambiente negli script in `,_jsx(_components.code,{children:`/etc/profile.d/`}),` per renderle disponibili a livello di sistema:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 'ENVVARS'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tee`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /etc/profile.d/custom-env.sh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /dev/null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`export CORPORATE_ENV=production`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`export DEFAULT_REGION=us-east-1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ENVVARS`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Entrambi gli approcci funzionano. `,_jsx(_components.code,{children:`$ENVRC`}),` è più semplice ed è consigliato nella maggior parte dei casi.`]})]})]}),_jsxs(Accordion,{title:`Impostazioni locali e fuso orario`,id:`impostazioni-locali-e-fuso-orario`,children:[_jsx(_components.p,{children:`Le immagini di base predefinite potrebbero avere impostazioni del locale non corrette. Configura il locale e il fuso orario per evitare avvisi da strumenti di build, Java, Python e Git.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure locale and timezone`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq locales`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Genera e imposta il locale`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo sed -i 's/^# *en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo locale-gen`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'LOCALE' | sudo tee /etc/profile.d/locale.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export LANG=\"en_US.UTF-8\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export LC_ALL=\"en_US.UTF-8\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` LOCALE`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Imposta il fuso orario`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo timedatectl set-timezone UTC 2>/dev/null || \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo ln -sfn /usr/share/zoneinfo/UTC /etc/localtime`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Limiti di risorse (ulimits)`,id:`limiti-di-risorse-ulimits`,children:[_jsx(_components.p,{children:`Le build Java, Gradle e Node.js raggiungono spesso il limite predefinito di 1024 file aperti. Aumentalo per evitare errori di build.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Raise resource limits`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'LIMITS' | sudo tee /etc/security/limits.d/99-devin.conf > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` * soft nofile 65536`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` * hard nofile 65536`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` * soft nproc 65536`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` * hard nproc 65536`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` LIMITS`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Imposta anche il massimo del kernel`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo \"fs.file-max = 65536\" | sudo tee /etc/sysctl.d/99-devin-filemax.conf > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo sysctl -p /etc/sysctl.d/99-devin-filemax.conf 2>/dev/null || true`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Sostituzione del mirror di APT`,id:`sostituzione-del-mirror-di-apt`,children:[_jsx(_components.p,{children:`In ambienti air-gapped o soggetti a restrizioni, sostituisci i repository APT predefiniti di Ubuntu con un mirror interno.`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-23`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APT_MIRROR_URL`}),` — URL del tuo mirror APT interno (ad es. `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/ubuntu-remote`}),`)`]}),`\n`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Replace APT sources with internal mirror`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Backup delle sorgenti originali`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Sostituisci tutti i mirror Ubuntu con il mirror interno`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo sed -i \"s|http://archive.ubuntu.com/ubuntu|$APT_MIRROR_URL|g\" /etc/apt/sources.list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo sed -i \"s|http://security.ubuntu.com/ubuntu|$APT_MIRROR_URL|g\" /etc/apt/sources.list`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`]})})}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`Pattern di URL comuni per i mirror APT:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artifactory:`}),` `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/ubuntu-remote`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nexus:`}),` `,_jsx(_components.code,{children:`https://nexus.example.com/repository/ubuntu-proxy`})]}),`\n`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`advanced-patterns`,children:`Pattern avanzati`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Variabili di ambiente con direnv`,id:`variabili-di-ambiente-con-direnv`,children:[_jsxs(_components.p,{children:[`L’ambiente di base di Devin include `,_jsx(_components.a,{href:`https://direnv.net/`,children:`direnv`}),`. Usa `,_jsx(_components.code,{children:`initialize`}),` per creare i file `,_jsx(_components.code,{children:`.envrc`}),`. Direnv li carica automaticamente.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c'EOF' > .envrc`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export DATABASE_URL=postgresql://localhost:5432/myapp_dev`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export REDIS_URL=redis://localhost:6379`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export APP_ENV=development`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` direnv allow .`})}),`\n`]})})}),_jsx(Info,{children:_jsxs(_components.p,{children:[`direnv è già configurato nella shell di Devin, quindi le variabili di `,_jsx(_components.code,{children:`.envrc`}),` vengono caricate automaticamente. Non serve eseguire il source manualmente.`]})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Per le variabili d’ambiente `,_jsx(_components.strong,{children:`sensibili`}),` (API key, token, password del database), usa i `,_jsx(_components.a,{href:`/it/product-guides/secrets`,children:`segreti del repo`}),` invece dei file `,_jsx(_components.code,{children:`.envrc`}),` e associali esplicitamente ai comandi della sessione che ne hanno bisogno. Espandere un segreto in un file durante una build può comunque farlo finire nello snapshot.`]})})]}),_jsxs(Accordion,{title:`Cambio della versione di Node per singola repo`,id:`cambio-della-versione-di-node-per-singola-repo`,children:[_jsxs(_components.p,{children:[`Usa nvm (preinstallato) per cambiare versione di Node.js per ciascun repository tramite `,_jsx(_components.code,{children:`.nvmrc`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nvm install 18`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nvm install 20`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nvm install 22`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nvm use`})}),`\n`]})})}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`nvm use`}),` legge `,_jsx(_components.code,{children:`.nvmrc`}),` dalla directory radice della repo. Assicurati che il repository ne abbia uno (ad es., contenente `,_jsx(_components.code,{children:`20`}),`).`]})})]}),_jsxs(Accordion,{title:`Autenticazione nel browser (Playwright)`,id:`autenticazione-nel-browser-playwright`,children:[_jsxs(_components.p,{children:[`Devin mette a disposizione un browser Chrome con un endpoint CDP su `,_jsx(_components.code,{children:`localhost:29229`}),` `,_jsx(_components.strong,{children:`durante le sessioni`}),`. Usa script Playwright per automatizzare il login nel browser.`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Il browser è disponibile solo durante le sessioni, non nelle build snapshot. Installa Playwright in `,_jsx(_components.code,{children:`initialize`}),` e conserva gli script di login nella tua repo.`]})}),_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pip install playwright`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` playwright install chromium`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`browser-auth`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` This project requires browser authentication.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Run the login script before interacting with the app:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` python scripts/login.py`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Devin's Chrome browser is accessible via CDP at:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http://localhost:29229`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Esempio di script di accesso (`,_jsx(_components.code,{children:`scripts/login.py`}),`):`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` playwright.sync_api `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sync_playwright`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sync_playwright() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` p:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` browser `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` p.chromium.connect_over_cdp(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://localhost:29229\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` context `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` browser.contexts[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` page `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` context.pages[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` context.pages `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` context.new_page()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` page.goto(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://internal-tool.example.com/login\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` page.fill(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"#username\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TOOL_USERNAME\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` page.fill(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"#password\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TOOL_PASSWORD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` page.click(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'button[type=\"submit\"]'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` page.wait_for_url(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"**/dashboard\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Conserva le credenziali di accesso come secrets, non nel codice sorgente. Per un’autenticazione a lungo termine, esegui il commit degli script di accesso in `,_jsx(_components.code,{children:`.agents/skills/`}),` in modo che Devin possa riautenticarsi automaticamente.`]})})]}),_jsxs(Accordion,{title:`Strumenti di sistema personalizzati e PATH`,id:`strumenti-di-sistema-personalizzati-e-path`,children:[_jsxs(_components.p,{children:[`Installa pacchetti di sistema, binari personalizzati e configura il PATH in `,_jsx(_components.code,{children:`initialize`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`28`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`28`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install system packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apt-get update`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apt-get install -y \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` jq \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ripgrep \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` fd-find \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` protobuf-compiler \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` libssl-dev`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install custom CLI tool`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -L https://github.com/example/tool/releases/download/v1.0/tool-linux-amd64 \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` -o /usr/local/bin/mytool`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` chmod +x /usr/local/bin/mytool`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Add custom bin directory to PATH`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/bin`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export PATH=\"$HOME/bin:$PATH\"' >> ~/.bashrc`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`tools`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Custom tools available:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` - mytool: installed at /usr/local/bin/mytool`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` - Additional binaries can be placed in ~/bin`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`GitHub Actions per configurare gli strumenti`,id:`github-actions-per-configurare-gli-strumenti`,children:[_jsxs(_components.p,{children:[`Devin supporta l’esecuzione diretta di GitHub Actions nella sezione `,_jsx(_components.code,{children:`initialize`}),` di un blueprint. Questo è utile per installare versioni specifiche degli strumenti tramite le stesse azioni usate dalla tua CI.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`42`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`42`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install Node.js 20\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github.com/actions/setup-node@v4`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` node-version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"20\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install Python 3.12\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github.com/actions/setup-python@v5`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` python-version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"3.12\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install Go 1.22\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github.com/actions/setup-go@v5`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` go-version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.22\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install Java 21\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github.com/actions/setup-java@v4`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` java-version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"21\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` distribution`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"temurin\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install Gradle\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github.com/gradle/actions/setup-gradle@v4`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install Ruby 3.3\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` uses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`github.com/ruby/setup-ruby@v1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` ruby-version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"3.3\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Install additional tools\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pip install uv`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install -g pnpm turbo`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go install golang.org/x/tools/gopls@latest`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo \"All runtimes are available:\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` node --version`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` python --version`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go version`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` java --version`})}),`\n`]})})}),_jsx(Info,{children:_jsxs(_components.p,{children:[`Azioni come `,_jsx(_components.code,{children:`setup-node`}),` e `,_jsx(_components.code,{children:`setup-python`}),` modificano il PATH e le variabili d’ambiente. I binari installati da un’azione sono disponibili in tutti i passaggi successivi e in `,_jsx(_components.code,{children:`maintenance`}),`. Le azioni Node.js e quelle composite sono supportate; le azioni Docker sono supportate solo nelle build Linux. I passaggi `,_jsx(_components.code,{children:`uses`}),` non possono essere eseguiti in `,_jsx(_components.code,{children:`maintenance`}),`. Vedi `,_jsx(_components.a,{href:`/it/onboard-devin/environment/github-actions#limitations`,children:`limitazioni delle GitHub Actions`}),`.`]})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Non servono GitHub Actions per la configurazione di base degli strumenti. I comandi shell diretti (`,_jsx(_components.code,{children:`nvm install 20`}),`, `,_jsx(_components.code,{children:`curl ... | sh`}),`, `,_jsx(_components.code,{children:`apt-get install`}),`) funzionano altrettanto bene e spesso sono più semplici. Le GitHub Actions sono particolarmente utili quando vuoi replicare esattamente la configurazione della tua CI o sfruttare la comodità di azioni come `,_jsx(_components.code,{children:`setup-java`}),`, che gestiscono più distribuzioni.`]})})]}),_jsxs(Accordion,{title:`Proxy inverso HTTPS locale per più app`,id:`proxy-inverso-https-locale-per-piu-app`,children:[_jsxs(_components.p,{children:[`Esegui più servizi dietro hostname dall’aspetto realistico su HTTPS, come `,_jsx(_components.code,{children:`app.example.com`}),`, `,_jsx(_components.code,{children:`api.example.com`}),` e `,_jsx(_components.code,{children:`admin.example.com`}),`. Installa un singolo proxy inverso in `,_jsx(_components.code,{children:`initialize`}),` e instrada ogni hostname verso una porta upstream locale diversa.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://caddyserver.com/`,children:`Caddy`}),` gestisce il routing e il TLS locale in un unico strumento. Un Caddyfile associa ogni hostname a un upstream e `,_jsx(_components.code,{children:`tls internal`}),` emette automaticamente un certificato attendibile per ciascun hostname dalla CA integrata di Caddy. `,_jsx(_components.code,{children:`caddy trust`}),` installa la root di quella CA nell’archivio di attendibilità del sistema e, aggiungendo la stessa root al database NSS, il browser la accetterà.`]}),_jsxs(_components.p,{children:[`Carica il Caddyfile tramite la sezione `,_jsx(_components.strong,{children:`File allegati`}),` dell’editor del blueprint; sarà quindi disponibile come `,_jsx(_components.code,{children:`$FILE_CADDYFILE`}),`.`]}),_jsx(CodeBlock,{filename:`Caddyfile`,numberOfLines:`15`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`app.example.com {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` tls internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` reverse_proxy 127.0.0.1:3000`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`api.example.com {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` tls internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` reverse_proxy 127.0.0.1:3001`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`admin.example.com {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` tls internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` reverse_proxy 127.0.0.1:3002`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(CodeBlock,{filename:``,numberOfLines:`41`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`41`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Caddy and NSS tools`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get install -y debian-keyring debian-archive-keyring \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apt-transport-https curl libnss3-tools`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/apt/sources.list.d/caddy-stable.list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get install -y caddy`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Caddyfile, hosts entries, and trust internal CA`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo install -m 0644 \"$FILE_CADDYFILE\" /etc/caddy/Caddyfile`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` for host in app.example.com api.example.com admin.example.com; do`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` grep -q \" $host$\" /etc/hosts \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` || echo \"127.0.0.1 $host\" | sudo tee -a /etc/hosts > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` done`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo systemctl enable --now caddy`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo caddy trust`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.pki/nssdb`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [ -f ~/.pki/nssdb/cert9.db ] \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` || certutil -d sql:$HOME/.pki/nssdb -N --empty-password`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` CADDY_ROOT=/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` for _ in $(seq 1 30); do`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo test -f \"$CADDY_ROOT\" \u0026\u0026 break`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sleep 1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` done`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` if sudo test -f \"$CADDY_ROOT\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u0026\u0026 ! certutil -d sql:$HOME/.pki/nssdb -L | grep -q \"Caddy Local Authority\"; then`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo install -o \"$USER\" -m 0644 \"$CADDY_ROOT\" /tmp/caddy-root.crt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` certutil -d sql:$HOME/.pki/nssdb -A -t \"C,,\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` -n \"Caddy Local Authority\" -i /tmp/caddy-root.crt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rm -f /tmp/caddy-root.crt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` fi`})}),`\n`]})})}),_jsx(Info,{children:_jsxs(_components.p,{children:[`Il loop di `,_jsx(_components.code,{children:`/etc/hosts`}),` è ciò che consente a `,_jsx(_components.code,{children:`app.example.com`}),` di risolversi in `,_jsx(_components.code,{children:`127.0.0.1`}),` all’interno della sessione. Aggiungi una voce per ogni hostname che inserisci nel Caddyfile.`]})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Per aggiungere un servizio, aggiungi un blocco di tre righe al Caddyfile e una voce al loop di `,_jsx(_components.code,{children:`/etc/hosts`}),`, quindi apri il relativo hostname tramite HTTPS. Caddy genera un certificato alla prima richiesta, quindi non è necessario generare certificati separati per ogni app.`]})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`full-stack-examples`,children:`Esempi full-stack`}),`\n`,_jsx(_components.p,{children:`Questi esempi mostrano come si combinano le configurazioni Enterprise e quelle a livello di org. In pratica, le divideresti tra diversi ambiti. Qui sono riunite a scopo di riferimento.`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Stack Enterprise completo (Artifactory)`,id:`stack-enterprise-completo-artifactory`,children:[_jsx(_components.p,{children:`Un ambiente enterprise completo: certificato CA aziendale, proxy, Java (Maven), Python (pip/uv), Node.js (npm) e Docker, tutti puntati a una singola istanza di Artifactory.`}),_jsxs(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-24`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Rete e attendibilità (per l’intero account):`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_ROOT_CA_B64`}),` — certificato CA aziendale codificato in Base64`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTP_PROXY`}),` — URL del proxy HTTP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTPS_PROXY`}),` — URL del proxy HTTPS`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_NO_PROXY`}),` — host da escludere dal proxy`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Credenziali del registry (per l’intera org):`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_USER`}),` — nome utente Artifactory`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_TOKEN`}),` — token API o password di Artifactory`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_MAVEN_URL`}),` — URL del repository Maven (ad es., `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/maven-virtual`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_PYPI_URL`}),` — URL del repository PyPI (ad es., `,_jsx(_components.code,{children:`https://user:token@artifactory.example.com/artifactory/api/pypi/pypi-virtual/simple`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_NPM_URL`}),` — URL del repository npm (ad es., `,_jsx(_components.code,{children:`https://artifactory.example.com/artifactory/api/npm/npm-virtual`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_DOCKER_URL`}),` — URL del registry Docker (ad es., `,_jsx(_components.code,{children:`artifactory.example.com`}),`)`]}),`\n`]})]}),_jsx(_components.p,{children:`In genere questo verrebbe suddiviso in tre ambiti:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`A livello di account (`,_jsx(_components.code,{children:`initialize`}),`):`]}),` Certificato e proxy`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Org-wide (`,_jsx(_components.code,{children:`initialize`}),`):`]}),` Installazione del runtime del linguaggio`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`A livello di org (`,_jsx(_components.code,{children:`maintenance`}),`):`]}),` configurazione del registry contenente riferimenti letterali`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Comandi di sessione:`}),` fornire esplicitamente i segreti, caricare l’environment setup ed effettuare il login per singole operazioni Docker`]}),`\n`]}),_jsx(_components.p,{children:`Di seguito il codice completo per riferimento:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`110`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`110`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ── Account-wide: rete e attendibilità ──────────────────────────────────────`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install corporate CA certificate`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_ROOT_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-ca-certificates`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-root-ca.crt' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/node-ca.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure system-wide proxy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export http_proxy=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export https_proxy=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export no_proxy=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTP_PROXY=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTPS_PROXY=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export NO_PROXY=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PROXY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ── Org-wide: language runtimes ──────────────────────────────────────────`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK 17 + Maven`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo --preserve-env=http_proxy,https_proxy,no_proxy,HTTP_PROXY,HTTPS_PROXY,NO_PROXY \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo --preserve-env=http_proxy,https_proxy,no_proxy,HTTP_PROXY,HTTPS_PROXY,NO_PROXY \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` MAVEN_VERSION=3.9.9`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' curl -fsSL \"https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz\" \\\\'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /opt`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" sudo ln -sf /opt/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/local/bin/mvn\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install uv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -LsSf https://astral.sh/uv/install.sh | sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ── Org-wide: configurazione del registry ───────────────────────────────────`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Maven → Artifactory`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.m2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.m2/settings.xml \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003csettings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>artifactory\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrorOf>*\u003c/mirrorOf>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003curl>${env.ARTIFACTORY_MAVEN_URL}\u003c/url>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cservers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cserver>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>artifactory\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cusername>${env.ARTIFACTORY_USER}\u003c/username>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cpassword>${env.ARTIFACTORY_TOKEN}\u003c/password>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/server>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/servers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/settings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure pip/uv → Artifactory PyPI`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/private-pypi.sh \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export PIP_INDEX_URL=\"$ARTIFACTORY_PYPI_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export UV_INDEX_URL=\"$ARTIFACTORY_PYPI_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure npm → Artifactory`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${ARTIFACTORY_NPM_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` REGISTRY_HOST=$(echo \"$ARTIFACTORY_NPM_URL\" | sed 's|https\\\\?://||;s|/.*||')`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set \"//\\${REGISTRY_HOST}/:_authToken\" '\\${ARTIFACTORY_TOKEN}'`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With the corresponding secrets available, source setup in each command:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 mvn dependency:resolve`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 npm install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh \u0026\u0026 source ~/.config/private-pypi.sh \u0026\u0026 uv sync`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_container_images`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With the Artifactory and proxy secrets available, run in one shell.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Replace team/image:tag with the image to pull:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -euo pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` umask 077`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DOCKER_CONFIG=$(mktemp -d)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export DOCKER_CONFIG`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trap 'rm -rf \"$DOCKER_CONFIG\"' EXIT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$ARTIFACTORY_TOKEN\" |`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docker login \"$ARTIFACTORY_DOCKER_URL\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --username \"$ARTIFACTORY_USER\" --password-stdin`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docker pull \"$ARTIFACTORY_DOCKER_URL/team/image:tag\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` )`})}),`\n`]})})}),_jsx(Info,{children:_jsx(_components.p,{children:`In questo esempio, tutti i registry puntano alla stessa istanza di Artifactory, ma utilizzano percorsi URL diversi. Ogni ecosistema di pacchetti ha il proprio formato di endpoint. Gli URL di Maven, PyPI, npm e Docker sono tutti diversi, anche per lo stesso registry.`})})]}),_jsxs(Accordion,{title:`Multilingua con registry diversi`,id:`multilingua-con-registry-diversi`,children:[_jsx(_components.p,{children:`Quando linguaggi diversi usano registry privati diversi (ad es. Maven da Nexus, npm da GitHub Packages, Python da Artifactory).`}),_jsx(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-25`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NEXUS_MAVEN_URL`}),` — URL del repository Maven di Nexus`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NEXUS_USER`}),` — nome utente di Nexus`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NEXUS_PASS`}),` — password di Nexus`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GITHUB_PACKAGES_TOKEN`}),` — token di accesso personale di GitHub con ambito `,_jsx(_components.code,{children:`read:packages`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_USER`}),` — nome utente di Artifactory`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ARTIFACTORY_TOKEN`}),` — token API di Artifactory`]}),`\n`]})}),_jsxs(_components.p,{children:[`Collega il tuo Git provider e concedi l’accesso ai repository che ospitano i moduli Go tramite le `,_jsx(_components.a,{href:`/it/integrations/overview`,children:`integrazioni Git`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`48`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`48`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Maven → Nexus`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Maven → Nexus`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.m2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.m2/settings.xml \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003csettings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>nexus\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrorOf>*\u003c/mirrorOf>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003curl>${env.NEXUS_MAVEN_URL}\u003c/url>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cservers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cserver>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>nexus\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cusername>${env.NEXUS_USER}\u003c/username>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cpassword>${env.NEXUS_PASS}\u003c/password>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/server>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/servers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/settings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # npm → GitHub Packages (con ambito)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure npm → GitHub Packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set @myorg:registry https://npm.pkg.github.com`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set //npm.pkg.github.com/:_authToken '${GITHUB_PACKAGES_TOKEN}'\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Python → Artifactory`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure pip → Artifactory`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/private-pypi.sh \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export PIP_INDEX_URL=\"https://$ARTIFACTORY_USER:$ARTIFACTORY_TOKEN@artifactory.example.com/artifactory/api/pypi/pypi-virtual/simple\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Go → moduli privati tramite il Git provider collegato`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Go private modules`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` go env -w GOPRIVATE=github.com/myorg/*`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`private_python_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With URL-encoded ARTIFACTORY_USER and ARTIFACTORY_TOKEN available, run:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/private-pypi.sh \u0026\u0026 pip install -r requirements.txt`})}),`\n`]})})})]}),_jsxs(Accordion,{title:`Ambiente isolato dalla rete con mirror privati`,id:`ambiente-isolato-dalla-rete-con-mirror-privati`,children:[_jsx(_components.p,{children:`In un ambiente completamente air-gapped, Devin non può accedere ad alcun URL pubblico. Tutti gli strumenti, i runtime e i pacchetti devono provenire da mirror interni.`}),_jsxs(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-26`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Certificati:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_ROOT_CA_B64`}),` — certificato CA aziendale codificato in Base64`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Accesso ai mirror:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`APT_MIRROR_URL`}),` — URL del mirror APT interno di Ubuntu`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MIRROR_USER`}),` — nome utente per l’autenticazione al mirror`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MIRROR_PASS`}),` — password per l’autenticazione al mirror`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`JDK_TARBALL_URL`}),` — URL da cui scaricare il tarball JDK dal mirror interno`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NODE_TARBALL_URL`}),` — URL da cui scaricare il tarball Node.js dal mirror interno`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Registry dei pacchetti:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_MAVEN_URL`}),` — URL del registry Maven interno`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_NPM_URL`}),` — URL del registry npm interno`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_PYPI_URL`}),` — URL del registry PyPI interno`]}),`\n`]})]}),_jsx(CodeBlock,{filename:``,numberOfLines:`67`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`67`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install corporate CA certificate`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_ROOT_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-ca-certificates`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Replace apt sources with internal mirror`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo sed -i \"s|http://archive.ubuntu.com/ubuntu|$APT_MIRROR_URL|g\" /etc/apt/sources.list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo sed -i \"s|http://security.ubuntu.com/ubuntu|$APT_MIRROR_URL|g\" /etc/apt/sources.list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install JDK from internal mirror`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Scarica il tarball JDK dall'archivio artefatti interno`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -fsSL -u \"$MIRROR_USER:$MIRROR_PASS\" \"$JDK_TARBALL_URL\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /usr/local`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo ln -sf /usr/local/jdk-17.*/bin/java /usr/local/bin/java`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo ln -sf /usr/local/jdk-17.*/bin/javac /usr/local/bin/javac`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo \"export JAVA_HOME=$(ls -d /usr/local/jdk-17.*)\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install Node.js from internal mirror`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -fsSL -u \"$MIRROR_USER:$MIRROR_PASS\" \"$NODE_TARBALL_URL\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tar -xz -C /usr/local --strip-components=1`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure all package managers for internal registry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # Maven`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.m2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.m2/settings.xml \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003csettings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>internal\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrorOf>*\u003c/mirrorOf>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003curl>${env.INTERNAL_MAVEN_URL}\u003c/url>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cservers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cserver>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>internal\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cusername>${env.MIRROR_USER}\u003c/username>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cpassword>${env.MIRROR_PASS}\u003c/password>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/server>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/servers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/settings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # npm`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${INTERNAL_NPM_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` # pip`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/private-pypi.sh \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export PIP_INDEX_URL=\"$INTERNAL_PYPI_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`internal_python_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` With INTERNAL_PYPI_URL available, run:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/private-pypi.sh \u0026\u0026 pip install -r requirements.txt`})}),`\n`]})})}),_jsx(Warning,{children:_jsx(_components.p,{children:`Negli ambienti air-gapped, tutti gli strumenti necessari a Devin (runtime dei linguaggi di programmazione, strumenti CLI, ecc.) devono essere disponibili sui vostri mirror interni. I registry pubblici e i siti di download non sono raggiungibili.`})})]}),_jsxs(Accordion,{title:`VPN + certificati + proxy + linguaggi`,id:`vpn-certificati-proxy-linguaggi`,children:[_jsx(_components.p,{children:`Una configurazione Enterprise completa che combina strumenti VPN, certificati, configurazione del proxy e supporto multilingua. Il blueprint installa gli strumenti e memorizza la configurazione con riferimenti letterali. Connetti esplicitamente la VPN quando esegui operazioni che richiedono accesso interno.`}),_jsxs(Accordion,{title:`Segreti richiesti`,id:`segreti-richiesti-27`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`VPN:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VPN_CONFIG_B64`}),` — file di configurazione OpenVPN codificato in Base64`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Rete \u0026 attendibilità:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_ROOT_CA_B64`}),` — certificato CA aziendale codificato in Base64`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTP_PROXY`}),` — URL del proxy HTTP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_HTTPS_PROXY`}),` — URL del proxy HTTPS`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CORP_NO_PROXY`}),` — host da escludere dal proxy`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Credenziali del registry:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAVEN_REGISTRY_URL`}),` — URL del registry Maven`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`NPM_REGISTRY_URL`}),` — URL del registry npm`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PYPI_REGISTRY_HOST`}),` — hostname del registry PyPI`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_USER`}),` — nome utente del registry (per Maven e pip)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_PASS`}),` — password del registry (per Maven e pip)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REGISTRY_TOKEN`}),` — token di autenticazione per npm`]}),`\n`]})]}),_jsx(CodeBlock,{filename:``,numberOfLines:`124`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`124`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`initialize`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # 1. Client VPN`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install VPN client`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openvpn`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # 2. DNS — risolve gli hostname interni`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure DNS`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo mkdir -p /etc/systemd/resolved.conf.d`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'DNS' | sudo tee /etc/systemd/resolved.conf.d/corp.conf > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` [Resolve]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DNS=10.0.0.53`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Domains=corp.internal`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DNS`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo systemctl restart systemd-resolved || true`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # 3. Certificati — attendibilità delle CA interne`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install CA certificate`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -o pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$CORP_ROOT_CA_B64\" | base64 -d | openssl x509 -outform PEM \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /usr/local/share/ca-certificates/corp-root-ca.crt > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo update-ca-certificates`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corp-root-ca.crt' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/node-ca.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # 4. Proxy — instrada il traffico attraverso il proxy aziendale`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure proxy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat \u003c\u003c 'PROXY' | sudo tee /etc/profile.d/proxy.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export http_proxy=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export https_proxy=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export no_proxy=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTP_PROXY=\"$CORP_HTTP_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export HTTPS_PROXY=\"$CORP_HTTPS_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export NO_PROXY=\"$CORP_NO_PROXY\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PROXY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # 5. Language runtimes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Install language runtimes over VPN`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` (`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` set -euo pipefail`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` umask 077`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` VPN_DIR=$(mktemp -d)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cleanup() {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` if [ -f \"$VPN_DIR/openvpn.pid\" ]; then`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo kill \"$(cat \"$VPN_DIR/openvpn.pid\")\" || true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` fi`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo rm -rf \"$VPN_DIR\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trap cleanup EXIT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` printf '%s' \"$VPN_CONFIG_B64\" | base64 -d > \"$VPN_DIR/corp.conf\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo openvpn --config \"$VPN_DIR/corp.conf\" \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` --writepid \"$VPN_DIR/openvpn.pid\" --daemon`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` for i in $(seq 1 30); do`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` if ip link show tun0 >/dev/null 2>\u00261; then break; fi`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sleep 1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` done`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ip link show tun0 >/dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo --preserve-env=http_proxy,https_proxy,no_proxy,HTTP_PROXY,HTTPS_PROXY,NO_PROXY \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apt-get update -qq`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sudo --preserve-env=http_proxy,https_proxy,no_proxy,HTTP_PROXY,HTTPS_PROXY,NO_PROXY \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-17-jdk-headless`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` | sudo tee /etc/profile.d/java.sh > /dev/null`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install -g pnpm`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl -LsSf https://astral.sh/uv/install.sh | sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` )`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`maintenance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure Maven`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.m2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.m2/settings.xml \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003csettings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>corp\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cmirrorOf>*\u003c/mirrorOf>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003curl>${env.MAVEN_REGISTRY_URL}\u003c/url>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirror>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/mirrors>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cservers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cserver>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003cid>corp\u003c/id>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cusername>${env.REGISTRY_USER}\u003c/username>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" \u003cpassword>${env.REGISTRY_PASS}\u003c/password>\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/server>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/servers>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c/settings>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure npm`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" npm config set registry '${NPM_REGISTRY_URL}'\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` NPM_HOST=$(echo \"$NPM_REGISTRY_URL\" | sed 's|https\\\\?://||;s|/.*||')`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm config set \"//\\${NPM_HOST}/:_authToken\" '\\${REGISTRY_TOKEN}'`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Configure pip/uv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir -p ~/.config`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat > ~/.config/private-pypi.sh \u003c\u003c'EOF'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' export PIP_INDEX_URL=\"https://$REGISTRY_USER:$REGISTRY_PASS@${PYPI_REGISTRY_HOST}/simple\"'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` export UV_INDEX_URL=\"$PIP_INDEX_URL\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EOF`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`knowledge`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`internal_packages`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`|`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Use the temporary OpenVPN setup/cleanup block from the template library`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` when an operation needs VPN access. Inside that block, with the registry`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` and proxy secrets available, replace the sample curl command with:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source /etc/profile.d/proxy.sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mvn dependency:resolve`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npm install`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` source ~/.config/private-pypi.sh`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uv sync`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Percent-encode the pip URL credentials. Disconnect the VPN and remove its`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` temporary files when the operation finishes.`})}),`\n`]})})}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`È richiesto l’accesso bootstrap.`}),` Il client OpenVPN deve essere preinstallato o installabile prima di stabilire il tunnel. `,_jsx(_components.code,{children:`VPN_CONFIG_B64`}),` deve contenere certificati/chiavi inline, usare `,_jsx(_components.code,{children:`dev tun0`}),` e connettersi senza authentication interattiva. I download dei runtime vengono eseguiti all’interno di un unico lifecycle del tunnel e caricano esplicitamente l’ambiente del proxy. Ripeti il block di setup/pulizia della VPN riportato in `,_jsx(_components.a,{href:`#network-and-connectivity`,children:`Rete e connettività`}),` per le operazioni di sessione; il blueprint non riconnette la VPN all’avvio della sessione.`]})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`tips-for-writing-good-blueprints`,children:`Suggerimenti per scrivere blueprint efficaci`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Prova prima i comandi in una sessione.`}),` Esegui i comandi manualmente in una sessione di Devin prima di aggiungerli al blueprint. È più veloce che aspettare un ciclo di build completo.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Usa `,_jsx(_components.code,{children:`initialize`}),` per gli strumenti da installare una sola volta, `,_jsx(_components.code,{children:`maintenance`}),` per le dipendenze.`]}),` Tutto ciò che richiede minuti per essere installato (compilatori, binari di grandi dimensioni, strumenti globali) va in `,_jsx(_components.code,{children:`initialize`}),`. I comandi rapidi per le dipendenze (`,_jsx(_components.code,{children:`npm install`}),`, `,_jsx(_components.code,{children:`uv sync`}),`) vanno in `,_jsx(_components.code,{children:`maintenance`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Mantieni rapidi i comandi `,_jsx(_components.code,{children:`maintenance`}),`.`]}),` Cerca di restare sotto i 2 minuti. Vengono eseguiti durante le build e vengono mostrati all’agente all’inizio della sessione.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Usa `,_jsx(_components.code,{children:`$ENVRC`}),` per le variabili d’ambiente non sensibili.`]}),` Non scrivere credenziali o token derivati in `,_jsx(_components.code,{children:`$ENVRC`}),`, `,_jsx(_components.code,{children:`.bashrc`}),` o `,_jsx(_components.code,{children:`.profile`}),`. Carica esplicitamente la configurazione della shell che dipende dai segreti nel comando che ne ha bisogno.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Assegna un nome ai passaggi.`}),` La forma estesa con i campi `,_jsx(_components.code,{children:`name`}),` rende molto più semplice individuare gli errori nei log di build.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Usa le subshell per i monorepo.`}),` `,_jsx(_components.code,{children:`(cd packages/foo \u0026\u0026 npm install)`}),` viene eseguito in una subshell, così i passaggi successivi non risentono del cambio di directory.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Usa `,_jsx(_components.code,{children:`npm install`}),`, non `,_jsx(_components.code,{children:`npm ci`}),`.`]}),` `,_jsx(_components.code,{children:`npm ci`}),` elimina `,_jsx(_components.code,{children:`node_modules`}),` e reinstalla tutto da zero, rallentando `,_jsx(_components.code,{children:`maintenance`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Usa i segreti del repo per i valori sensibili.`}),` Configurali nella scheda `,_jsx(_components.strong,{children:`Segreti`}),` dell’editor del blueprint del repository invece di inserirli direttamente nei blueprint.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Per i dettagli sulla sintassi, consulta il `,_jsx(_components.a,{href:`/it/onboard-devin/environment/blueprint-reference`,children:`riferimento del blueprint`}),`. Per risolvere gli errori di build, consulta `,_jsx(_components.a,{href:`/it/onboard-devin/environment/blueprints#troubleshooting-builds`,children:`Configurazione dichiarativa > Risoluzione dei problemi`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Libreria di template dei blueprint di Devin","sidebarTitle":"Template library","description":"Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l'infrastruttura enterprise.","keywords":["Devin blueprints","environment templates","VPN configuration","private registries"],"icon":"code","public":true,"href":"/it/onboard-devin/environment/templates"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Guida rapida","slug":"quick-start","depth":2,"children":[]},{"title":"Blueprint dei repository","slug":"repository-blueprints","depth":2,"children":[{"title":"Python","slug":"python","depth":3,"children":[]},{"title":"Node.js","slug":"nodejs","depth":3,"children":[]},{"title":"Go","slug":"go","depth":3,"children":[]},{"title":"Java","slug":"java","depth":3,"children":[]},{"title":"Ruby on Rails","slug":"ruby-on-rails","depth":3,"children":[]},{"title":"Rust","slug":"rust","depth":3,"children":[]},{"title":"Monorepo","slug":"monorepos","depth":3,"children":[]}]},{"title":"Private package registries","slug":"private-package-registries","depth":2,"children":[{"title":"Registry Node.js","slug":"nodejs-registries","depth":3,"children":[]},{"title":"Registry Python","slug":"python-registries","depth":3,"children":[]},{"title":"Registry JVM","slug":"jvm-registries","depth":3,"children":[]},{"title":"Altri registry","slug":"other-registries","depth":3,"children":[]}]},{"title":"Infrastruttura Enterprise","slug":"enterprise-infrastructure","depth":2,"children":[{"title":"Rete e connettività","slug":"network-and-connectivity","depth":3,"children":[]},{"title":"Identità e sicurezza","slug":"identity-and-security","depth":3,"children":[]},{"title":"Configurazione del sistema","slug":"system-configuration","depth":3,"children":[]}]},{"title":"Pattern avanzati","slug":"advanced-patterns","depth":2,"children":[]},{"title":"Esempi full-stack","slug":"full-stack-examples","depth":2,"children":[]},{"title":"Suggerimenti per scrivere blueprint efficaci","slug":"tips-for-writing-good-blueprints","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cognitionai/6b3469dda11b3c9c/check_links.js","/_mintlify/custom/cognitionai/c4d5aa5c0030ad1e/gallery-filters.js","/_mintlify/custom/cognitionai/c1bd2ca6cfcf1f54/scripts/generate_desktop_changelog.js","/_mintlify/custom/cognitionai/0ad377d3e2ef5aab/anchor-scroll-fix.js","/_mintlify/custom/cognitionai/0e2a3f19d1c23789/check_seo.js","/_mintlify/custom/cognitionai/5e29e62e41fc65a0/release-notes-anchor-fix.js"],"subdomain":"cognitionai","siteName":"Devin Docs","title":"Libreria di template dei blueprint di Devin - Devin Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/it/onboard-devin/environment/templates","matchLevel":0},"es":{"href":"/es/get-started/devin-intro","matchLevel":4},"ja":{"href":"/ja/get-started/devin-intro","matchLevel":4},"zh":{"href":"/zh/get-started/devin-intro","matchLevel":4},"fr":{"href":"/fr/get-started/devin-intro","matchLevel":4},"de":{"href":"/de/get-started/devin-intro","matchLevel":4},"pt-BR":{"href":"/pt-BR/get-started/devin-intro","matchLevel":4},"it":{"href":"/it/get-started/devin-intro","matchLevel":4}}},"lastModified":"2026-10-06T18:04:38.423Z","originalFileLocation":"it/onboard-devin/environment/templates.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l\u0026#x27;infrastruttura enterprise.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Devin Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Libreria di template dei blueprint di Devin - Devin Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l\u0026#x27;infrastruttura enterprise.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Devin Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.devin.ai/it/onboard-devin/environment/templates\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cognitionai.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Libreria+di+template+dei+blueprint+di+Devin\u0026amp;description=Configura+gli+ambienti+di+Devin+con+template+di+blueprint+per+i+linguaggi+pi%C3%B9+comuni%2C+i+registry+privati+e+l%27infrastruttura+enterprise.\u0026amp;theme=660261457ca6e27cb1fc400c\u0026amp;signature=520896739c2caba2f47290469e3bf570c6b3ba4a4f486e0002d83530a556383d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Libreria di template dei blueprint di Devin - Devin Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configura gli ambienti di Devin con template di blueprint per i linguaggi più comuni, i registry privati e l\u0026#x27;infrastruttura enterprise.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cognitionai.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Libreria+di+template+dei+blueprint+di+Devin\u0026amp;description=Configura+gli+ambienti+di+Devin+con+template+di+blueprint+per+i+linguaggi+pi%C3%B9+comuni%2C+i+registry+privati+e+l%27infrastruttura+enterprise.\u0026amp;theme=660261457ca6e27cb1fc400c\u0026amp;signature=520896739c2caba2f47290469e3bf570c6b3ba4a4f486e0002d83530a556383d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cognitionai/Ycul7J1XWDV1FX48/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Devin Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#317CFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.devin.ai/it/onboard-devin/environment/templates\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/it/onboard-devin/environment/templates.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Devin Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Devin Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/it/onboard-devin/environment/templates.md","siteName":"Devin Docs","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Cloud","groups":[{"group":"Get Started","pages":[{"title":"Introducing Devin","icon":"otter","href":"/get-started/devin-intro"},{"title":"Your First Session","icon":"person-running","href":"/get-started/first-run"},{"group":"Tutorial Library","icon":"video","root":{"title":"Tutorial library","href":"/tutorial-library"},"pages":[{"title":"Devin repo setup tutorial","sidebarTitle":"Repo setup","icon":"video","href":"/tutorial-library/repo-setup"},{"title":"Fix a bug with Devin in Slack","sidebarTitle":"Slack bug fix","icon":"video","href":"/tutorial-library/slack-bug-fix"},{"title":"Build an iOS app with Devin","sidebarTitle":"Building an iOS App","icon":"mobile","href":"/tutorial-library/ios-app"},{"title":"Post-Train Custom Models With Devin and Modal","sidebarTitle":"Post-Training Models","icon":"microchip","href":"/tutorial-library/post-training-modal"},{"title":"Devin Automations tutorial","sidebarTitle":"Devin Automations","icon":"video","href":"/tutorial-library/automations"}]}]},{"group":"Essential Guidelines","pages":[{"title":"When to Use Devin","icon":"circle-info","href":"/essential-guidelines/when-to-use-devin"},{"title":"Instructing Devin Effectively","icon":"lightbulb","href":"/essential-guidelines/instructing-devin-effectively"},{"title":"Good vs. Bad Instructions","icon":"scale-balanced","href":"/essential-guidelines/good-vs-bad-instructions"},{"title":"Prompt Templates Cheat Sheet","icon":"clipboard-list","href":"/essential-guidelines/prompt-templates-cheat-sheet"},{"title":"How does Devin fit into my existing SDLC?","icon":"puzzle-piece","href":"/essential-guidelines/sdlc-integration"}]},{"group":"Onboarding Devin","pages":[{"group":"Environment configuration","icon":"server","root":{"title":"Devin environment setup","sidebarTitle":"Environment configuration","icon":"server","href":"/onboard-devin/environment"},"pages":[{"title":"Devin environment blueprints","sidebarTitle":"Declarative configuration","icon":"file-code","href":"/onboard-devin/environment/blueprints"},{"title":"Blueprint reference","icon":"book","href":"/onboard-devin/environment/blueprint-reference"},{"title":"Android emulator support","icon":"mobile","href":"/onboard-devin/environment/android-emulation"},{"title":"Devin macOS support","sidebarTitle":"macOS support","icon":"apple","href":"/onboard-devin/environment/macos-support"},{"title":"Upload iOS builds to TestFlight with Devin","sidebarTitle":"TestFlight uploads","icon":"paper-plane","href":"/onboard-devin/environment/testflight"},{"title":"Windows support","icon":"windows","href":"/onboard-devin/environment/windows-support"}]},{"group":"Devin Outposts","icon":"tower-observation","root":{"title":"Devin Outposts: self-hosted infrastructure","sidebarTitle":"Devin Outposts","icon":"tower-observation","href":"/cloud/outposts/overview"},"pages":[{"title":"Devin Outposts quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/cloud/outposts/quickstart"},{"title":"Devin Outposts orchestration guide","sidebarTitle":"Orchestration","icon":"diagram-project","href":"/cloud/outposts/orchestration"},{"title":"Devin Outposts API and CLI reference","sidebarTitle":"Reference","icon":"book","href":"/cloud/outposts/reference"},{"title":"Devin Outposts partner integrations","sidebarTitle":"Outposts partner integrations","icon":"handshake","href":"/cloud/outposts/partners"}]},{"title":"Index a Repository","icon":"square-code","href":"/onboard-devin/index-repo"},{"title":"Devin VPN configuration","sidebarTitle":"VPN configuration","icon":"globe","href":"/onboard-devin/vpn"},{"title":"Knowledge Onboarding","icon":"brain","href":"/onboard-devin/knowledge-onboarding"},{"title":"AGENTS.md files for Devin","sidebarTitle":"AGENTS.md","icon":"robot","href":"/onboard-devin/agents-md"},{"title":"Migrate to Devin from another coding agent","sidebarTitle":"Migrate from other agents","icon":"arrow-right-arrow-left","href":"/onboard-devin/migrate-from-other-agents"}]},{"group":"Working with Devin","pages":[{"title":"Devin Review","icon":"code-pull-request","href":"/work-with-devin/devin-review"},{"title":"Stacked PRs","icon":"layer-group","href":"/work-with-devin/stacked-prs"},{"title":"Devin Session Tools","icon":"toolbox","href":"/work-with-devin/devin-session-tools"},{"title":"Devin voice mode","sidebarTitle":"Voice mode","icon":"microphone","href":"/work-with-devin/voice-mode"},{"title":"Computer Use","icon":"desktop","href":"/work-with-devin/computer-use"},{"title":"Devin browser authentication","sidebarTitle":"Browser Authentication","icon":"key","href":"/work-with-devin/browser-auth"},{"title":"Testing \u0026 Video Recordings","icon":"video","href":"/work-with-devin/testing-and-recordings"},{"title":"Slash Commands","icon":"terminal","href":"/work-with-devin/slash-commands"},{"title":"Ask Devin","icon":"magnifying-glass","href":"/work-with-devin/ask-devin"},{"title":"Data Analyst Agent","icon":"chart-mixed","href":"/work-with-devin/data-analyst"},{"title":"DeepWiki repository wikis","sidebarTitle":"DeepWiki","icon":"book","href":"/work-with-devin/deepwiki"},{"title":"Devin Security 2.0","sidebarTitle":"Security 2.0","icon":"shield-check","href":"/work-with-devin/security-2-0"},{"title":"Devin Code Scans","sidebarTitle":"Code Scans","icon":"magnifying-glass-chart","href":"/work-with-devin/code-scans"},{"title":"Hand off to Devin Cloud from Any Agent","sidebarTitle":"Hand off to cloud Devins","icon":"share-from-square","href":"/work-with-devin/devin-handoff"},{"title":"Local Hands for Devin Cloud Sessions","sidebarTitle":"Local Hands","icon":"laptop","href":"/work-with-devin/local-hands"},{"title":"Devin MCP servers and marketplace","sidebarTitle":"MCP (Model Context Protocol) Marketplace","icon":"plug","href":"/work-with-devin/mcp"},{"title":"DeepWiki MCP","icon":"plug","href":"/work-with-devin/deepwiki-mcp"},{"title":"Devin MCP","icon":"plug","href":"/work-with-devin/devin-mcp"},{"title":"Devin CLI","icon":"terminal","href":"/work-with-devin/devin-cli"},{"title":"Advanced Capabilities","icon":"wand-magic-sparkles","href":"/work-with-devin/advanced-capabilities"},{"title":"Devin Dynamic Workflows","sidebarTitle":"Dynamic Workflows","icon":"diagram-project","href":"/work-with-devin/dynamic-workflows"}]},{"group":"Product Guides","pages":[{"title":"Devin Skills","sidebarTitle":"Skills","icon":"zap","href":"/product-guides/skills"},{"title":"Devin Memory and Dreaming","sidebarTitle":"Memory","icon":"database","href":"/product-guides/memory"},{"title":"Devin plugins and the Customize page","sidebarTitle":"Plugins","icon":"box","href":"/product-guides/plugins"},{"title":"Plugin MCP servers in Devin","sidebarTitle":"Plugin MCP servers","icon":"key","href":"/product-guides/plugin-mcp-setups"},{"title":"Set up your plugin ecosystem","icon":"boxes-stacked","href":"/product-guides/plugin-ecosystem"},{"title":"Session Insights","icon":"lightbulb","href":"/product-guides/session-insights"},{"title":"Secrets \u0026 Site Cookies","icon":"key","href":"/product-guides/secrets"},{"title":"Security Profiles","icon":"shield-check","href":"/product-guides/security-profiles"},{"title":"Cloud Authentication with OIDC","icon":"id-badge","href":"/product-guides/oidc"},{"title":"Creating Playbooks","icon":"book","href":"/product-guides/creating-playbooks"},{"title":"Using Playbooks","icon":"file-check","href":"/product-guides/using-playbooks"},{"title":"Automations","icon":"clock","href":"/product-guides/automations"},{"title":"Devin Oncall","sidebarTitle":"Oncall","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cognitionai/images/oncall.svg","href":"/product-guides/devin-oncall"},{"title":"Auto-triage","icon":"slack","href":"/product-guides/auto-triage"},{"title":"Scheduled Sessions","icon":"calendar","href":"/product-guides/scheduled-sessions"},{"title":"Devin app deployments","sidebarTitle":"Deployments","icon":"rocket","href":"/product-guides/deployment-capabilities"},{"title":"Devin PR bot comment settings","sidebarTitle":"Responding to bots","icon":"robot","href":"/product-guides/bot-comment-settings"},{"title":"Invite your Team","icon":"people-group","href":"/product-guides/invite-team"}]},{"group":"Integrations","pages":[{"title":"Devin integrations overview","sidebarTitle":"Integrations Overview","icon":"plug","href":"/integrations/overview"},{"title":"Slack","icon":"slack","href":"/integrations/slack"},{"title":"Microsoft Teams","icon":"microsoft","href":"/integrations/microsoft-teams"},{"title":"Devin GitHub integration","sidebarTitle":"GitHub","icon":"github","href":"/integrations/gh"},{"title":"GitLab","icon":"gitlab","href":"/integrations/gitlab"},{"title":"Bitbucket","icon":"bitbucket","href":"/integrations/bitbucket"},{"title":"Linear","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cognitionai/images/linear.svg","href":"/integrations/linear"},{"title":"Devin Jira integration","sidebarTitle":"Jira","icon":"jira","href":"/integrations/jira"},{"title":"Connect Devin to Databricks","sidebarTitle":"Databricks","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cognitionai/images/databricks.svg","href":"/integrations/databricks"},{"title":"Connect Devin to MongoDB","sidebarTitle":"MongoDB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cognitionai/images/mongodb.svg","href":"/integrations/mongodb"},{"title":"PagerDuty integration","sidebarTitle":"PagerDuty","icon":"bell","href":"/integrations/pagerduty"},{"title":"Pylon integration","sidebarTitle":"Pylon","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cognitionai/images/pylon.svg","href":"/integrations/pylon"},{"title":"GitHub Pull Request Templates","icon":"code-pull-request","href":"/integrations/pr-templates"},{"title":"Self-Hosted SCM \u0026 Artifacts","icon":"server","href":"/integrations/self-hosted-scm-artifacts"}]},{"group":"Admin","pages":[{"title":"Security at Cognition","icon":"lock","href":"/admin/security"},{"group":"Billing","icon":"money-bill","root":{"title":"Billing","icon":"money-bill","href":"/admin/billing"},"pages":[{"title":"Self-serve plans","icon":"credit-card","href":"/admin/billing/self-serve"},{"title":"Enterprise","icon":"building","href":"/admin/billing/enterprise"},{"title":"Budgets","icon":"wallet","href":"/admin/billing/budgets"},{"title":"Usage","icon":"gauge-high","href":"/admin/billing/usage"},{"title":"Use your ChatGPT plan in Devin","sidebarTitle":"ChatGPT plan","icon":"plug","href":"/admin/billing/chatgpt"}]},{"title":"Common Issues","icon":"circle-question","href":"/admin/common-issues"}]},{"group":"Release Notes","pages":[{"title":"Recent Updates","icon":"megaphone","href":"/release-notes/overview"},{"title":"2026","href":"/release-notes/2026"},{"title":"2025","href":"/release-notes/2025"},{"title":"2024","href":"/release-notes/2024"}]}]},{"tab":"CLI","groups":[{"group":"Getting Started","pages":[{"title":"Quickstart","icon":"bolt","href":"/cli"},{"title":"Introducing Devin CLI","icon":"circle-play","href":"/cli/introducing-devin-cli"},{"title":"Essential Commands","icon":"list-check","href":"/cli/essential-commands"},{"title":"Subagents","icon":"users","href":"/cli/subagents"},{"title":"Devin Cloud in the Devin CLI","sidebarTitle":"Cloud CLI","icon":"cloud","href":"/cli/cloud"},{"title":"SSH into Devin Cloud sessions","sidebarTitle":"SSH","icon":"terminal","href":"/cli/ssh"},{"title":"Hand off to cloud Devins","icon":"share-from-square","href":"/cli/handoff"},{"title":"Models","icon":"brain","href":"/cli/models"},{"title":"Adaptive","sidebarTitle":"Adaptive","icon":"shuffle","href":"/cli/adaptive"},{"title":"Fusion in Devin CLI","sidebarTitle":"Fusion","icon":"dna","href":"/cli/fusion"},{"title":"Sandbox","icon":"shield","href":"/cli/sandbox"},{"title":"Troubleshooting","icon":"wrench","href":"/cli/troubleshooting"}]},{"group":"Editor Integrations","pages":[{"title":"JetBrains","sidebarTitle":"JetBrains","icon":"code","href":"/cli/acp/jetbrains"},{"title":"Zed","sidebarTitle":"Zed","icon":"code","href":"/cli/acp/zed"},{"title":"Xcode","sidebarTitle":"Xcode","icon":"code","href":"/cli/acp/xcode"}]},{"group":"Extensibility","pages":[{"title":"Extensibility Overview","icon":"puzzle-piece","href":"/cli/extensibility/index"},{"title":"Configuration","icon":"gear","href":"/cli/extensibility/configuration"},{"title":"Rules \u0026 AGENTS.md","icon":"scroll","href":"/cli/extensibility/rules"},{"title":"MCP Overview","icon":"server","href":"/cli/extensibility/mcp/overview"},{"title":"MCP Configuration","icon":"gear","href":"/cli/extensibility/mcp/configuration"},{"title":"Skills Overview","icon":"wand-magic-sparkles","href":"/cli/extensibility/skills/overview"},{"title":"Creating Skills","icon":"plus","href":"/cli/extensibility/skills/creating-skills"},{"title":"Devin CLI plugins","sidebarTitle":"Plugins","icon":"box","href":"/cli/extensibility/plugins/overview"},{"title":"Quickstart: team marketplace","icon":"rocket","href":"/cli/extensibility/plugins/quickstart"},{"title":"Hooks","icon":"webhook","href":"/cli/extensibility/hooks/overview"},{"title":"Lifecycle Hooks","icon":"rotate","href":"/cli/extensibility/hooks/lifecycle-hooks"}]},{"group":"Enterprise","pages":[{"title":"Devin Auth","icon":"key","href":"/cli/enterprise/devin-auth"},{"title":"Legacy Windsurf Auth","icon":"key","href":"/cli/enterprise/windsurf-auth"},{"title":"Devin CLI Team Settings","sidebarTitle":"Team Settings","icon":"users","href":"/cli/enterprise/team-settings"},{"title":"System Configuration","icon":"lock","href":"/cli/enterprise/system-config"},{"title":"Devin CLI Controls","sidebarTitle":"Controls","icon":"sliders","href":"/cli/enterprise/controls"}]},{"group":"Reference","pages":[{"title":"Commands \u0026 Flags","icon":"terminal","href":"/cli/reference/commands"},{"title":"Keyboard Shortcuts","icon":"keyboard","href":"/cli/reference/keyboard-shortcuts"},{"title":"Terminal Compatibility","icon":"display","href":"/cli/reference/terminal-compatibility"},{"title":"Configuration File","icon":"file-code","href":"/cli/reference/configuration/config-file"},{"title":"Configuration Import","icon":"arrow-right-to-bracket","href":"/cli/reference/configuration/read-config-from"},{"title":"Configuration Precedence","icon":"layer-group","href":"/cli/reference/configuration/global-vs-local"},{"title":"Devin CLI permissions","sidebarTitle":"Permissions","icon":"shield","href":"/cli/reference/permissions"}]},{"group":"Changelog","pages":[{"title":"Changelog (Stable)","href":"/cli/changelog/stable"}]}]},{"tab":"Desktop","groups":[{"group":"Devin Desktop","pages":[{"group":"Editor","pages":[{"group":"Getting Started","pages":[{"title":"Introducing Devin Desktop","href":"/desktop/introducing-devin-desktop"},{"title":"Welcome to Devin Desktop","sidebarTitle":"Set Up","href":"/desktop/getting-started"},{"title":"Install Devin Desktop","sidebarTitle":"Install","href":"/desktop/install"},{"title":"Devin Desktop FAQ","href":"/desktop/devin-desktop-faq"},{"group":"Recommended Extensions","pages":[{"title":"Recommended Extensions","href":"/desktop/recommended-extensions"},{"title":"C#, .NET, and CPP","href":"/desktop/csharp-cpp"}]}]},{"title":"AI Models","sidebarTitle":"Models","href":"/desktop/models"},{"title":"Adaptive","sidebarTitle":"Adaptive","href":"/desktop/adaptive"},{"title":"Fusion in Devin Desktop","sidebarTitle":"Fusion","href":"/desktop/fusion"},{"title":"Quick Review","sidebarTitle":"Quick Review","href":"/desktop/quick-review"},{"title":"Devin Desktop Tab","sidebarTitle":"Tab","href":"/desktop/tab/overview"},{"title":"Command","sidebarTitle":"Command","href":"/desktop/command/windsurf-overview"},{"title":"Terminal","sidebarTitle":"Terminal","href":"/desktop/terminal"},{"title":"Devin Desktop Previews","sidebarTitle":"Browser Previews","href":"/desktop/previews"},{"title":"AI Commit Messages","href":"/desktop/ai-commit-message"},{"title":"DeepWiki","sidebarTitle":"DeepWiki","href":"/desktop/deepwiki"},{"title":"Codemaps","href":"/desktop/codemaps"},{"title":"Advanced Configuration","sidebarTitle":"Advanced","href":"/desktop/advanced"}]},{"group":"Devin Local","pages":[{"title":"Devin Local","sidebarTitle":"Overview","href":"/desktop/devin-local/overview"},{"title":"Devin Local Modes","sidebarTitle":"Modes","href":"/desktop/devin-local/modes"},{"title":"Devin Local Customizations","sidebarTitle":"Customizations","href":"/desktop/devin-local/customizations"},{"title":"Devin Local Permissions","sidebarTitle":"Permissions","href":"/desktop/devin-local/permissions"},{"title":"Devin Local Worktrees","sidebarTitle":"Worktrees","href":"/desktop/devin-local/worktrees"}]},{"group":"Context Awareness","pages":[{"title":"Context Awareness for Devin Desktop","sidebarTitle":"Overview","href":"/desktop/context-awareness/windsurf-overview"},{"title":"Fast Context","href":"/desktop/context-awareness/fast-context"},{"title":"Devin Desktop .devinignore","sidebarTitle":"Ignore Files","href":"/desktop/context-awareness/devin-ignore"}]},{"group":"Troubleshooting","pages":[{"title":"Common Devin Desktop Issues","sidebarTitle":"Common Issues","href":"/desktop/troubleshooting/windsurf-common-issues"},{"title":"Proxy Configuration in Devin Desktop Editor","sidebarTitle":"Proxy Configuration","href":"/desktop/troubleshooting/windsurf-proxy-configuration"},{"title":"TLS / SSL Inspection Issues in Devin Desktop","sidebarTitle":"SSL Inspection","href":"/desktop/troubleshooting/windsurf-ssl-inspection"},{"title":"Language Server Fails with 'No Space Left on Device' on Linux","sidebarTitle":"Linux inotify Limits","href":"/desktop/troubleshooting/windsurf-inotify-limits"},{"title":"WSL Known Issues","sidebarTitle":"WSL Issues","href":"/desktop/troubleshooting/windsurf-wsl-performance"},{"title":"Gathering Devin Desktop Logs","sidebarTitle":"Gathering Logs","href":"/desktop/troubleshooting/logs"}]},{"title":"Cascade (legacy)","sidebarTitle":"Cascade (legacy)","href":"/desktop/cascade"}]},{"group":"Agent Command Center","pages":[{"title":"Agent Command Center","sidebarTitle":"Agent Command Center","href":"/desktop/agent-command-center"},{"title":"Devin in Devin Desktop","sidebarTitle":"Devin","href":"/desktop/devin"},{"title":"Agent Client Protocol","sidebarTitle":"Agent Client Protocol (preview)","href":"/desktop/acp"},{"title":"Building a custom ACP agent","sidebarTitle":"Building a custom ACP agent","href":"/desktop/acp-custom"}]},{"group":"Releases","pages":[{"title":"Devin Desktop changelog","sidebarTitle":"Changelog","icon":"clock-rotate-left","href":"/desktop/changelog"},{"title":"Changelog (Next)","icon":"clock-rotate-left","href":"/desktop/changelog-next"},{"title":"Releases","icon":"download","href":"/desktop/releases"},{"title":"Releases (Next)","icon":"download","href":"/desktop/releases-next"}]},{"group":"Windsurf Plugins","pages":[{"group":"Changelog","pages":[{"title":"Changelog","icon":"clock-rotate-left","href":"/windsurf/plugins/changelog"},{"title":"Changelog (Pre-release)","icon":"clock-rotate-left","href":"/windsurf/plugins/changelog-next"}]},{"group":"Get Started","pages":[{"title":"Welcome to Windsurf Plugins","sidebarTitle":"Set Up","href":"/windsurf/plugins/getting-started"},{"title":"IDE Compatibility","sidebarTitle":"Compatibility","href":"/windsurf/plugins/compatibility"},{"title":"Windsurf Plugins Guide for Admins","sidebarTitle":"Guide for Admins","href":"/windsurf/plugins/guide-for-admins"}]},{"group":"Features","pages":[{"group":"Autocomplete","pages":[{"title":"Autocomplete Overview","sidebarTitle":"Overview","href":"/desktop/autocomplete/overview"},{"title":"Autocomplete Tips","sidebarTitle":"Tips","href":"/desktop/autocomplete/tips"}]},{"group":"Chat","pages":[{"title":"Chat Overview","sidebarTitle":"Overview","href":"/desktop/chat/overview"},{"title":"Chat Models","sidebarTitle":"Chat Models","href":"/desktop/chat/models"}]},{"group":"Command","pages":[{"title":"Command Overview","sidebarTitle":"Overview","href":"/desktop/command/plugins-overview"},{"title":"Refactors, Docstrings, and More","href":"/desktop/command/related-features"}]}]},{"group":"Cascade (JetBrains)","pages":[{"title":"Cascade Overview for JetBrains","sidebarTitle":"Overview","href":"/windsurf/plugins/cascade/cascade-overview"},{"title":"Cascade Models","sidebarTitle":"Models","href":"/windsurf/plugins/cascade/models"},{"title":"Web and Docs Search in Windsurf Plugins","sidebarTitle":"Web and Docs Search","href":"/windsurf/plugins/cascade/web-search"},{"title":"Memories \u0026 Rules","href":"/windsurf/plugins/cascade/memories"},{"title":"Windsurf Cascade MCP configuration","sidebarTitle":"Model Context Protocol (MCP)","href":"/windsurf/plugins/cascade/mcp"},{"title":"Workflows","sidebarTitle":"Workflows","href":"/windsurf/plugins/cascade/workflows"}]},{"group":"Context Awareness","pages":[{"title":"Context Awareness Overview","sidebarTitle":"Overview","href":"/desktop/context-awareness/overview"},{"title":"Fast Context","href":"/desktop/context-awareness/fast-context"},{"title":"Devin Desktop .devinignore","sidebarTitle":"Ignore Files","href":"/desktop/context-awareness/devin-ignore"},{"title":"Remote Indexing","sidebarTitle":"Remote Indexing (Enterprise)","href":"/desktop/context-awareness/remote-indexing"}]},{"group":"Best Practices","pages":[{"title":"Prompt Engineering","href":"/desktop/best-practices/prompt-engineering"},{"title":"Common Use Cases","href":"/desktop/best-practices/use-cases"}]},{"group":"Troubleshooting","pages":[{"title":"Gathering Plugin Logs","sidebarTitle":"Gathering Logs","href":"/desktop/troubleshooting/plugins-gathering-logs"},{"title":"General Issues","sidebarTitle":"Common Issues","href":"/desktop/troubleshooting/plugins-common-issues"},{"group":"Enterprise","pages":[{"title":"JetBrains Troubleshooting","sidebarTitle":"JetBrains","href":"/desktop/troubleshooting/plugins-enterprise/jetbrains"},{"title":"Windsurf JetBrains Plugin Proxy Setup","sidebarTitle":"JetBrains Proxy","href":"/desktop/troubleshooting/plugins-enterprise/jetbrains-proxy"},{"title":"Visual Studio Code (VSCode) Troubleshooting","sidebarTitle":"Visual Studio Code (VSCode)","href":"/desktop/troubleshooting/plugins-enterprise/vscode"},{"title":"Eclipse Troubleshooting","sidebarTitle":"Eclipse","href":"/desktop/troubleshooting/plugins-enterprise/eclipse"},{"title":"Visual Studio Troubleshooting","sidebarTitle":"Visual Studio","href":"/desktop/troubleshooting/plugins-enterprise/visualstudio"}]}]}]},{"group":"Accounts","pages":[{"title":"Plans and Usage","sidebarTitle":"Usage","href":"/desktop/accounts/usage"},{"title":"Quota-Based Usage","sidebarTitle":"Quota","href":"/desktop/accounts/quota"},{"group":"Teams \u0026 Enterprise","pages":[{"group":"Getting Started","pages":[{"title":"Devin Desktop Teams and Enterprise setup","sidebarTitle":"Getting Started","href":"/desktop/accounts/teams-getting-started"},{"title":"Devin Desktop Guide for Admins","sidebarTitle":"Guide for Admins","href":"/desktop/guide-for-admins"}]},{"title":"Role Based Access \u0026 Management","sidebarTitle":"Role Based Access","href":"/desktop/accounts/rbac-role-management"},{"group":"API Reference","pages":[{"title":"API Reference","href":"/desktop/accounts/api-reference/api-introduction"},{"title":"List Devin Desktop Models and Pricing","sidebarTitle":"List Models","api":"GET https://server.codeium.com/api/v2alpha/models","href":"/desktop/accounts/api-reference/list-models"},{"title":"Update the Devin Desktop Model Allowlist","sidebarTitle":"Update Model Allowlist","api":"PUT https://server.codeium.com/api/v2alpha/models","href":"/desktop/accounts/api-reference/update-models"},{"group":"Analytics API","pages":[{"title":"Analytics API","href":"/desktop/accounts/api-reference/analytics-api-introduction"},{"title":"Get User Page Analytics","api":"POST https://server.codeium.com/api/v1/UserPageAnalytics","href":"/desktop/accounts/api-reference/user-page-analytics"},{"title":"Get Cascade Analytics","api":"POST https://server.codeium.com/api/v1/CascadeAnalytics","href":"/desktop/accounts/api-reference/cascade-analytics"},{"title":"Custom Analytics Query","api":"POST https://server.codeium.com/api/v1/Analytics","href":"/desktop/accounts/api-reference/custom-analytics"},{"title":"Analytics API v2","href":"/desktop/accounts/api-reference/analytics-v2-introduction"},{"title":"Get Consumption","openapi":"desktop/accounts/api-reference/analytics-v2-openapi.yaml GET /api/v2alpha/analytics/consumption","href":"/desktop/accounts/api-reference/get-consumption"},{"title":"Get Active Users","openapi":"desktop/accounts/api-reference/analytics-v2-openapi.yaml GET /api/v2alpha/analytics/active-users","href":"/desktop/accounts/api-reference/get-active-users"},{"title":"Get Agent Output (Lines of Code)","sidebarTitle":"Get Output","openapi":"desktop/accounts/api-reference/analytics-v2-openapi.yaml GET /api/v2alpha/analytics/output","href":"/desktop/accounts/api-reference/get-output"},{"title":"Get Devin Agent Tool Calls","sidebarTitle":"Get Tools","openapi":"desktop/accounts/api-reference/analytics-v2-openapi.yaml GET /api/v2alpha/analytics/tools","href":"/desktop/accounts/api-reference/get-tools"},{"title":"Error Handling","href":"/desktop/accounts/api-reference/errors"}]},{"group":"Usage API","pages":[{"title":"Set Usage Configuration","api":"POST https://server.codeium.com/api/v1/UsageConfig","href":"/desktop/accounts/api-reference/usage-config"},{"title":"Get Usage Configuration","api":"POST https://server.codeium.com/api/v1/GetUsageConfig","href":"/desktop/accounts/api-reference/get-usage-config"},{"title":"Get Team Credit Balance","api":"POST https://server.codeium.com/api/v1/GetTeamCreditBalance","href":"/desktop/accounts/api-reference/get-team-credit-balance"}]}]},{"title":"Setting up SSO \u0026 SCIM","sidebarTitle":"SSO \u0026 SCIM","href":"/desktop/accounts/sso-scim"},{"title":"Domain Verification","sidebarTitle":"Domain Verification","href":"/desktop/accounts/domain-verification"},{"title":"Devin Desktop admin controls reference","sidebarTitle":"Admin Controls","href":"/desktop/controls"},{"title":"Enterprise Policies","sidebarTitle":"Enterprise Policies","href":"/desktop/enterprise-policies"}]}]},{"group":"Security","pages":[{"title":"FedRAMP Security Admin Guide","sidebarTitle":"FedRAMP Security Admin Guide","href":"/desktop/security/security-admin-guide"},{"title":"Reporting Security Concerns","sidebarTitle":"Reporting","href":"/desktop/security/reporting"}]}]},{"tab":"Enterprise","groups":[{"group":"Getting Started","pages":[{"title":"Getting Started with Devin Enterprise","icon":"flag-checkered","href":"/enterprise/getting-started/get-started"},{"title":"Understanding Organizations","icon":"building","href":"/enterprise/getting-started/organizations"}]},{"group":"Deployment","pages":[{"title":"Enterprise Deployment","icon":"network-wired","href":"/enterprise/deployment/overview"},{"title":"Dedicated Deployment Private Networking","icon":"code-pull-request","href":"/enterprise/deployment/dedicated_saas_private_networking"},{"title":"Devin Connect","icon":"shield-halved","href":"/enterprise/deployment/devin-connect"}]},{"group":"Environment management","pages":[{"title":"Enterprise environment overview","href":"/enterprise/environment-management/overview"},{"title":"Devin environment rollout health","sidebarTitle":"Rollout health","icon":"chart-line","href":"/enterprise/environment-management/rollout"},{"title":"Best practices","href":"/enterprise/environment-management/best-practices"}]},{"group":"Local agent controls","pages":[{"title":"Local Agent Controls","sidebarTitle":"Local Agent Controls","icon":"sliders","href":"/enterprise/local/controls"}]},{"group":"Usage management","pages":[{"title":"Usage policies: budgets and user limits","sidebarTitle":"Usage policies","icon":"sliders","href":"/enterprise/features/usage-policies"},{"title":"Devin Coach: usage efficiency coaching","sidebarTitle":"Devin Coach","icon":"lightbulb","href":"/enterprise/features/devin-coach"}]},{"group":"Integrations","pages":[{"title":"Git Integrations","icon":"code-branch","href":"/enterprise/integrations/git-integrations"},{"title":"GitHub Enterprise Server Integration","icon":"github","href":"/enterprise/integrations/github-enterprise-server"},{"title":"GitLab Self-Managed Integration","icon":"gitlab","href":"/enterprise/integrations/gitlab-self-managed"},{"title":"Azure DevOps","icon":"microsoft","href":"/enterprise/integrations/azure-devops"},{"title":"Azure DevOps (Service Principal)","icon":"microsoft","href":"/enterprise/integrations/azure-devops-service-principal"},{"title":"Artifacts","icon":"box","href":"/enterprise/integrations/artifacts/overview"}]},{"group":"Security \u0026 Access","pages":[{"title":null,"href":"/enterprise/security-access/security/enterprise-security"},{"title":"Customer Managed Keys","icon":"key","href":"/enterprise/security-access/security/customer-managed-keys"},{"title":"Custom Roles \u0026 RBAC","icon":"users","href":"/enterprise/security-access/custom-roles"},{"title":"Personal Analytics","icon":"chart-line","href":"/enterprise/security-access/personal-analytics"},{"title":"IP Access Lists","icon":"shield-check","href":"/enterprise/security-access/ip-access-lists"},{"title":"SSO Onboarding Guide","icon":"book","href":"/enterprise/security-access/sso/guide"},{"title":"Okta SSO Setup","icon":"id-card","href":"/enterprise/security-access/sso/okta"},{"title":"Entra ID SSO Setup","icon":"microsoft","href":"/enterprise/security-access/sso/azure"},{"title":"SAML SSO Setup","icon":"key","href":"/enterprise/security-access/sso/saml"},{"title":"OIDC SSO Setup","icon":"lock","href":"/enterprise/security-access/sso/oidc"},{"title":"SCIM Setup","icon":"users-gear","href":"/enterprise/security-access/scim"},{"title":"IdP Group Integration","icon":"shield-check","href":"/enterprise/security-access/idp-groups"},{"title":"Trust Center","icon":"shield-check","url":"https://trust.cognition.ai","href":"/enterprise/security-access/trust-center"},{"title":"AI Guardrails","icon":"shield-halved","href":"/enterprise/features/ai-guardrails"},{"title":"Attribution Filtering","icon":"code-compare","href":"/enterprise/features/attribution-filtering"}]},{"group":"Use Cases \u0026 Tutorials","pages":[{"group":"Overview","pages":[{"title":"Overview","icon":"compass","mode":"wide","href":"/use-cases/index"},{"title":"Best Practices","icon":"clipboard-check","mode":"wide","href":"/use-cases/best-practices"}]},{"group":"Use Cases","pages":[{"title":"Java Upgrades","icon":"browser","href":"/use-cases/examples/java-upgrades"},{"title":"COBOL Modernization","icon":"computer-classic","href":"/use-cases/examples/cobol-modernization"},{"title":"Clear Engineering Backlogs","icon":"tasks","href":"/use-cases/examples/clear-engineering-backlogs"},{"title":"SAS to PySpark Migration","icon":"chart-line","href":"/use-cases/examples/sas-to-pyspark"},{"title":"JavaScript to TypeScript Migration","icon":"code","href":"/use-cases/examples/javascript-to-typescript"},{"title":"NoSQL to SQL Migration","icon":"database","href":"/use-cases/examples/nosql-to-sql"}]},{"group":"Prompts","pages":[{"title":"Testing \u0026 Refactoring","icon":"code","href":"/use-cases/testing-refactoring"},{"title":"Data \u0026 Analysis","icon":"chart-mixed","href":"/use-cases/data-analysis"},{"title":"Web Scraping \u0026 Automation","icon":"robot","href":"/use-cases/web-scraping"},{"title":"Interactive Applications","icon":"browser","href":"/use-cases/interactive-applications"},{"title":"Migration \u0026 Modernization","icon":"arrows-rotate","href":"/use-cases/migration-modernization"}]},{"group":"Tutorials","pages":[{"title":"API Integration","icon":"envelopes","href":"/use-cases/tutorials/api-integration"},{"title":"Code Coverage","icon":"flask-vial","href":"/use-cases/tutorials/code-coverage"},{"title":"Containerization","icon":"box-open","href":"/use-cases/tutorials/containerization"},{"title":"Managing Frontend Components","icon":"camera-viewfinder","href":"/use-cases/tutorials/frontend-components"},{"title":"MCP Use Cases","icon":"envelopes","href":"/use-cases/tutorials/mcp-use-cases"}]}]}]},{"tab":"Use Cases","groups":[{"group":"Gallery","pages":[{"mode":"custom","title":"Use Cases","href":"/use-cases/gallery"}]}]},{"tab":"API","groups":[{"group":"Getting Started","pages":[{"title":"API Overview","href":"/api-reference/overview"},{"title":"Quick start: Teams","href":"/api-reference/getting-started/teams-quickstart"},{"title":"Quick start: Enterprise","href":"/api-reference/getting-started/enterprise-quickstart"},{"title":"Migrating from v1/v2","href":"/api-reference/getting-started/migration-guide"}]},{"group":"Concepts","pages":[{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Permissions \u0026 RBAC","href":"/api-reference/v3/overview"},{"title":"Common Flows","href":"/api-reference/common-flows"},{"title":"Pagination","href":"/api-reference/concepts/pagination"},{"title":"Terraform Provider","href":"/api-reference/terraform-provider"},{"title":"API Release Notes","href":"/api-reference/release-notes"}]},{"group":"Agent Lifecycle","pages":[{"group":"Sessions (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions","title":"List Sessions","href":"/api-reference/v3/sessions/organizations-sessions"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/sessions","title":"Create Session","href":"/api-reference/v3/sessions/post-organizations-sessions"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions/{devin_id}","title":"Get Session","href":"/api-reference/v3/sessions/get-organizations-session"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions/{devin_id}/messages","title":"List session messages","href":"/api-reference/v3/sessions/get-organizations-session-messages"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/sessions/{devin_id}/messages","title":"Send a message to a session","href":"/api-reference/v3/sessions/post-organizations-sessions-messages"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions/{devin_id}/attachments","title":"List session attachments","href":"/api-reference/v3/sessions/get-organizations-session-attachments"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/sessions/{devin_id}","title":"Terminate Session","href":"/api-reference/v3/sessions/delete-organizations-sessions"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/sessions/{devin_id}/archive","title":"Archive Session","href":"/api-reference/v3/sessions/post-organizations-sessions-archive"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions/{devin_id}/tags","title":"Get session tags","href":"/api-reference/v3/sessions/get-organizations-session-tags"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/sessions/{devin_id}/tags","title":"Append session tags","href":"/api-reference/v3/sessions/post-organizations-session-tags"},{"openapi":"v3-openapi.yaml PUT /v3/organizations/{org_id}/sessions/{devin_id}/tags","title":"Replace session tags","href":"/api-reference/v3/sessions/put-organizations-session-tags"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions/insights","title":"List sessions with insights","href":"/api-reference/v3/sessions/organizations-sessions-insights"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/sessions/{devin_id}/insights","title":"Get session insights","href":"/api-reference/v3/sessions/get-organizations-session-insights"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/sessions/{devin_id}/insights/generate","title":"Generate session insights","href":"/api-reference/v3/sessions/post-organizations-session-insights-generate"}]},{"group":"Sessions (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions","title":"List sessions for account","href":"/api-reference/v3/sessions/enterprise-sessions"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions/{devin_id}","title":"Get session details","href":"/api-reference/v3/sessions/get-enterprise-session"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions/{devin_id}/messages","title":"List session messages","href":"/api-reference/v3/sessions/get-enterprise-session-messages"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/sessions/{devin_id}/messages","title":"Send a message to a session","href":"/api-reference/v3/sessions/post-enterprise-sessions-messages"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions/{devin_id}/attachments","title":"List session attachments","href":"/api-reference/v3/sessions/get-enterprise-session-attachments"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions/{devin_id}/tags","title":"Get session tags","href":"/api-reference/v3/sessions/get-enterprise-session-tags"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/sessions/{devin_id}/tags","title":"Append session tags","href":"/api-reference/v3/sessions/post-enterprise-session-tags"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/sessions/{devin_id}/tags","title":"Replace session tags","href":"/api-reference/v3/sessions/put-enterprise-session-tags"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions/insights","title":"List sessions with insights","href":"/api-reference/v3/sessions/enterprise-sessions-insights"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/sessions/{devin_id}/insights","title":"Get session insights","href":"/api-reference/v3/sessions/get-enterprise-session-insights"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/sessions/{devin_id}/insights/generate","title":"Generate session insights","href":"/api-reference/v3/sessions/post-enterprise-session-insights-generate"}]},{"group":"Attachments (Organization)","pages":[{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/attachments","title":"Upload an attachment","href":"/api-reference/v3/attachments/post-organizations-attachments"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/attachments/{uuid}/{name}","title":"Download an attachment","href":"/api-reference/v3/attachments/get-organizations-attachments"}]},{"group":"Devin Review (Organization)","pages":[{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/pr-reviews","title":"Trigger Devin Review","href":"/api-reference/v3/pr-reviews/post-organizations-pr-reviews"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/pr-reviews","title":"Get latest Devin Review status","href":"/api-reference/v3/pr-reviews/get-organizations-pr-reviews"}]},{"group":"Devin Review (Enterprise)","pages":[{"openapi":"v3-openapi.yaml POST /v3/enterprise/pr-reviews","title":"Trigger Devin Review","href":"/api-reference/v3/pr-reviews/post-enterprise-pr-reviews"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/pr-reviews","title":"Get latest Devin Review status","href":"/api-reference/v3/pr-reviews/get-enterprise-pr-reviews"}]}]},{"group":"Context Management","pages":[{"group":"Knowledge Notes (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/knowledge/notes","title":"List org-level notes","href":"/api-reference/v3/notes/organizations-knowledge-notes"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/knowledge/notes/{note_id}","title":"Get an org-level note","href":"/api-reference/v3/notes/get-organizations-knowledge-note"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/knowledge/notes","title":"Create an org-level note","href":"/api-reference/v3/notes/post-organizations-knowledge-notes"},{"openapi":"v3-openapi.yaml PUT /v3/organizations/{org_id}/knowledge/notes/{note_id}","title":"Update an org-level note","href":"/api-reference/v3/notes/put-organizations-knowledge-notes-note-id"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/knowledge/notes/{note_id}","title":"Delete an org-level note","href":"/api-reference/v3/notes/delete-organizations-knowledge-notes-note-id"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/knowledge/folders","title":"Get knowledge folder structure with note counts.","href":"/api-reference/v3/notes/organizations-knowledge-folders"}]},{"group":"Knowledge Notes (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/knowledge/notes","title":"List all notes.","href":"/api-reference/v3/notes/enterprise-knowledge-notes"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/knowledge/notes/{note_id}","title":"Get a note by ID","href":"/api-reference/v3/notes/get-enterprise-knowledge-note"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/knowledge/notes","title":"Create an enterprise-level note","href":"/api-reference/v3/notes/post-enterprise-knowledge-notes"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/knowledge/notes/{note_id}","title":"Update a note","href":"/api-reference/v3/notes/put-enterprise-knowledge-notes-note-id"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/knowledge/notes/{note_id}","title":"Delete a note","href":"/api-reference/v3/notes/delete-enterprise-knowledge-notes-note-id"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/knowledge/folders","title":"Get knowledge folder structure with note counts.","href":"/api-reference/v3/notes/enterprise-knowledge-folders"}]},{"group":"Playbooks (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/playbooks","title":"List org-level playbooks","href":"/api-reference/v3/playbooks/organizations-playbooks"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/playbooks","title":"Create an org-level playbook","href":"/api-reference/v3/playbooks/post-organizations-playbooks"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/playbooks/{playbook_id}","title":"Get an organization- or enterprise-level playbook by ID","href":"/api-reference/v3/playbooks/get-organizations-playbook"},{"openapi":"v3-openapi.yaml PUT /v3/organizations/{org_id}/playbooks/{playbook_id}","title":"Update an org-level playbook","href":"/api-reference/v3/playbooks/put-organizations-playbooks-playbook-id"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/playbooks/{playbook_id}","title":"Delete an org-level playbook","href":"/api-reference/v3/playbooks/delete-organizations-playbooks-playbook-id"}]},{"group":"Playbooks (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/playbooks","title":"List all playbooks.","href":"/api-reference/v3/playbooks/enterprise-playbooks"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/playbooks","title":"Create an enterprise-level playbook","href":"/api-reference/v3/playbooks/post-enterprise-playbooks"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/playbooks/{playbook_id}","title":"Get a playbook by ID.","href":"/api-reference/v3/playbooks/get-enterprise-playbook"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/playbooks/{playbook_id}","title":"Update a playbook","href":"/api-reference/v3/playbooks/put-enterprise-playbooks-playbook-id"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/playbooks/{playbook_id}","title":"Delete a playbook","href":"/api-reference/v3/playbooks/delete-enterprise-playbooks-playbook-id"}]}]},{"group":"Environment Management","pages":[{"group":"Secrets (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/secrets","title":"List org-level secrets","href":"/api-reference/v3/secrets/organizations-secrets"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/secrets","title":"Create an org-level secret","href":"/api-reference/v3/secrets/post-organizations-secrets"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/secrets/{secret_id}","title":"Delete an org-level secret","href":"/api-reference/v3/secrets/delete-organizations-secrets"}]},{"group":"Repositories (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/repositories","title":"List repositories available to an organization","href":"/api-reference/v3/repositories/list-organizations-repositories"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/repositories/indexing","title":"List indexed repositories","href":"/api-reference/v3/repositories/list-organizations-indexed-repositories"},{"openapi":"v3-openapi.yaml PUT /v3/organizations/{org_id}/repositories/indexing","title":"Bulk index repositories","href":"/api-reference/v3/repositories/put-organizations-bulk-index-repositories"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/repositories/indexing","title":"Bulk remove repositories from indexing","href":"/api-reference/v3/repositories/delete-organizations-bulk-remove-repositories"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/repositories/{repository_path}/indexing","title":"Get indexing status for a repository","href":"/api-reference/v3/repositories/get-organizations-repository-indexing-status"},{"openapi":"v3-openapi.yaml PUT /v3/organizations/{org_id}/repositories/{repository_path}/indexing","title":"Index a repository","href":"/api-reference/v3/repositories/put-organizations-index-repository"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/repositories/{repository_path}/indexing","title":"Remove a repository from indexing","href":"/api-reference/v3/repositories/delete-organizations-remove-repository"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/repositories/{repository_path}/indexing/branches/{branch_name}","title":"Remove a branch from indexing","href":"/api-reference/v3/repositories/delete-organizations-remove-branch"}]},{"group":"Snapshot Setup (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/blueprints","title":"List org- and repo-tier blueprints","href":"/api-reference/v3/snapshot-setup/list-organizations-blueprints"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/snapshot-setup/blueprints","title":"Create an org- or repo-tier blueprint","href":"/api-reference/v3/snapshot-setup/post-organizations-blueprints"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}","title":"Get a single blueprint","href":"/api-reference/v3/snapshot-setup/get-organizations-blueprint"},{"openapi":"v3-openapi.yaml PATCH /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}","title":"Update a blueprint's contents, position, source and/or commit-build settings","href":"/api-reference/v3/snapshot-setup/patch-organizations-blueprint"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}","title":"Soft-delete a blueprint","href":"/api-reference/v3/snapshot-setup/delete-organizations-blueprint"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}/contents","title":"Presigned URL for the blueprint's YAML","href":"/api-reference/v3/snapshot-setup/get-organizations-blueprint-contents"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}/files","title":"List blueprint files","href":"/api-reference/v3/snapshot-setup/list-organizations-blueprint-files"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}/files","title":"Upload a blueprint file","href":"/api-reference/v3/snapshot-setup/post-organizations-blueprint-file"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}/files/{file_id}","title":"Delete a blueprint file","href":"/api-reference/v3/snapshot-setup/delete-organizations-blueprint-file"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/builds","title":"List builds for the org","href":"/api-reference/v3/snapshot-setup/list-organizations-builds"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/snapshot-setup/builds","title":"Trigger a manual build","href":"/api-reference/v3/snapshot-setup/post-organizations-builds"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/builds/{build_id}","title":"Get a single build","href":"/api-reference/v3/snapshot-setup/get-organizations-build"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/snapshot-setup/builds/{build_id}/cancel","title":"Cancel an in-flight build","href":"/api-reference/v3/snapshot-setup/post-organizations-build-cancel"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/snapshot-setup/builds/{build_id}/logs","title":"Presigned URL for the build's log file","href":"/api-reference/v3/snapshot-setup/get-organizations-build-logs"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/snapshot-setup/builds/{build_id}/pin","title":"Pin the org to a specific successful build","href":"/api-reference/v3/snapshot-setup/post-organizations-build-pin"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/snapshot-setup/builds/{build_id}/pin","title":"Unpin a build (no-op if not pinned)","href":"/api-reference/v3/snapshot-setup/delete-organizations-build-pin"}]},{"group":"Snapshot Setup (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/snapshot-setup/blueprints","title":"List enterprise-tier blueprints","href":"/api-reference/v3/snapshot-setup/list-enterprise-blueprints"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/snapshot-setup/blueprints","title":"Create the enterprise-tier blueprint","href":"/api-reference/v3/snapshot-setup/post-enterprise-blueprints"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}","title":"Get the enterprise blueprint","href":"/api-reference/v3/snapshot-setup/get-enterprise-blueprint"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}","title":"Replace the enterprise blueprint's YAML contents","href":"/api-reference/v3/snapshot-setup/put-enterprise-blueprint"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}","title":"Delete the enterprise blueprint (soft-delete)","href":"/api-reference/v3/snapshot-setup/delete-enterprise-blueprint"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}/contents","title":"Presigned URL for the enterprise blueprint YAML","href":"/api-reference/v3/snapshot-setup/get-enterprise-blueprint-contents"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}/files","title":"List enterprise blueprint files","href":"/api-reference/v3/snapshot-setup/list-enterprise-blueprint-files"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}/files","title":"Upload an enterprise blueprint file","href":"/api-reference/v3/snapshot-setup/post-enterprise-blueprint-file"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/snapshot-setup/blueprints/{blueprint_id}/files/{file_id}","title":"Delete an enterprise blueprint file","href":"/api-reference/v3/snapshot-setup/delete-enterprise-blueprint-file"}]}]},{"group":"Automation","pages":[{"group":"Automations (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/automations","title":"List automations","href":"/api-reference/v3/automations/organizations-automations"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/automations","title":"Create automation","href":"/api-reference/v3/automations/post-organizations-automations"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/automations/{automation_id}","title":"Get automation","href":"/api-reference/v3/automations/get-organizations-automation"},{"openapi":"v3-openapi.yaml PATCH /v3/organizations/{org_id}/automations/{automation_id}","title":"Update automation","href":"/api-reference/v3/automations/patch-organizations-automation"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/automations/{automation_id}","title":"Delete automation","href":"/api-reference/v3/automations/delete-organizations-automation"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/automations/schemas","title":"Get automation event schemas","href":"/api-reference/v3/automations/get-organizations-automations-schemas"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/automations/templates","title":"List automation templates","href":"/api-reference/v3/automations/get-organizations-automations-templates"}]},{"group":"Schedules (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/schedules","title":"List schedules","href":"/api-reference/v3/schedules/organizations-schedules"},{"openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/schedules","title":"Create schedule","href":"/api-reference/v3/schedules/post-organizations-schedules"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/schedules/{schedule_id}","title":"Get schedule","href":"/api-reference/v3/schedules/get-organizations-schedule"},{"openapi":"v3-openapi.yaml PATCH /v3/organizations/{org_id}/schedules/{schedule_id}","title":"Update schedule","href":"/api-reference/v3/schedules/patch-organizations-schedule"},{"openapi":"v3-openapi.yaml DELETE /v3/organizations/{org_id}/schedules/{schedule_id}","title":"Delete schedule","href":"/api-reference/v3/schedules/delete-organizations-schedule"}]}]},{"group":"Integrations","pages":[{"group":"Git Connections (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/git-providers/connections","title":"List Git Connections","href":"/api-reference/v3/git-connections/git-providers-connections"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/git-providers/connections/{connection_id}/repositories","title":"List repositories for a git connection","href":"/api-reference/v3/git-connections/get-git-providers-connection-repositories"}]},{"group":"Git Permissions (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/git-providers/permissions","title":"List Git Permissions","href":"/api-reference/v3/git-permissions/organizations-git-providers-permissions"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/git-providers/permissions","title":"Create Git Permissions","href":"/api-reference/v3/git-permissions/post-organizations-git-providers-permissions"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/organizations/{org_id}/git-providers/permissions","title":"Replace Git Permissions","href":"/api-reference/v3/git-permissions/put-organizations-git-providers-permissions"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/organizations/{org_id}/git-providers/permissions/{git_permission_id}","title":"Update Git Permission","href":"/api-reference/v3/git-permissions/patch-organizations-git-providers-permissions"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/git-providers/permissions/{git_permission_id}","title":"Delete Git Permission","href":"/api-reference/v3/git-permissions/delete-organizations-git-providers-permissions"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/git-providers/permissions","title":"Clear Git Permissions","href":"/api-reference/v3/git-permissions/clear-organizations-git-providers-permissions"}]}]},{"group":"Analytics","pages":[{"group":"Metrics (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/usage","title":"Get Usage Metrics","href":"/api-reference/v3/metrics/metrics-usage"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/sessions","title":"Get Session Metrics","href":"/api-reference/v3/metrics/metrics-sessions"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/prs","title":"Get PR Metrics","href":"/api-reference/v3/metrics/metrics-prs"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/searches","title":"Get Search Metrics","href":"/api-reference/v3/metrics/metrics-searches"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/dau","title":"Get Daily Active Users","href":"/api-reference/v3/metrics/metrics-dau"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/wau","title":"Get Weekly Active Users","href":"/api-reference/v3/metrics/metrics-wau"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/mau","title":"Get Monthly Active Users","href":"/api-reference/v3/metrics/metrics-mau"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/active-users","title":"Get Active Users for Custom Date Range","href":"/api-reference/v3/metrics/metrics-active-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/metrics/sessions-by-category","title":"Get Session Metrics by Category","href":"/api-reference/v3/metrics/metrics-sessions-by-category"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/metrics/usage","title":"Get Organization Usage Metrics","href":"/api-reference/v3/metrics/organizations-metrics-usage"}]},{"group":"Consumption (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/consumption/cycles","title":"List Consumption Cycles","href":"/api-reference/v3/consumption/consumption-cycles"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/consumption/daily","title":"Get Daily Consumption","href":"/api-reference/v3/consumption/consumption-daily"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/consumption/daily/organizations/{org_id}","title":"Get Organization Daily Consumption","href":"/api-reference/v3/consumption/consumption-daily-organizations"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/consumption/daily/users/{user_id}","title":"Get User Daily Consumption","href":"/api-reference/v3/consumption/consumption-daily-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/consumption/daily/service-users/{service_user_id}","title":"Get Service User Daily Consumption","href":"/api-reference/v3/consumption/consumption-daily-service-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/consumption/daily/sessions/{session_id}","title":"Get Session Daily Consumption","href":"/api-reference/v3/consumption/consumption-daily-sessions"}]},{"group":"Metrics (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/usage","title":"Get Usage Metrics","href":"/api-reference/v3/metrics/organizations-metrics-usage-org"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/sessions","title":"Get Session Metrics","href":"/api-reference/v3/metrics/organizations-metrics-sessions"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/prs","title":"Get PR Metrics","href":"/api-reference/v3/metrics/organizations-metrics-prs"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/searches","title":"Get Search Metrics","href":"/api-reference/v3/metrics/organizations-metrics-searches"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/dau","title":"Get Daily Active Users","href":"/api-reference/v3/metrics/organizations-metrics-dau"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/wau","title":"Get Weekly Active Users","href":"/api-reference/v3/metrics/organizations-metrics-wau"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/mau","title":"Get Monthly Active Users","href":"/api-reference/v3/metrics/organizations-metrics-mau"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/metrics/active-users","title":"Get Active Users for Custom Date Range","href":"/api-reference/v3/metrics/organizations-metrics-active-users"}]},{"group":"Consumption (Organization)","pages":[{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/consumption/daily","title":"Get Daily Consumption","href":"/api-reference/v3/consumption/organizations-consumption-daily"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/consumption/daily/users/{user_id}","title":"Get User Daily Consumption","href":"/api-reference/v3/consumption/organizations-consumption-daily-users"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/consumption/daily/service-users/{service_user_id}","title":"Get Service User Daily Consumption","href":"/api-reference/v3/consumption/organizations-consumption-daily-service-users"},{"openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/consumption/daily/sessions/{session_id}","title":"Get Session Daily Consumption","href":"/api-reference/v3/consumption/organizations-consumption-daily-sessions"}]}]},{"group":"Observability","pages":[{"group":"Audit Logs (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/audit-logs","title":"List Audit Logs","href":"/api-reference/v3/audit-logs/enterprise-audit-logs"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/audit-logs","title":"List Organization Audit Logs","href":"/api-reference/v3/audit-logs/organizations-audit-logs"}]},{"group":"Guardrail Violations (Enterprise) [Beta]","pages":[{"openapi":"v3-openapi.yaml GET /v3beta1/enterprise/guardrail-violations","tag":"Beta","title":"List Guardrail Violations","href":"/api-reference/v3/guardrail-violations/enterprise-guardrail-violations"},{"openapi":"v3-openapi.yaml GET /v3beta1/enterprise/organizations/{org_id}/guardrail-violations","tag":"Beta","title":"List Organization Guardrail Violations","href":"/api-reference/v3/guardrail-violations/organizations-guardrail-violations"}]}]},{"group":"Devin for Security","pages":[{"title":"Triggering Code Scans via the Devin API","href":"/api-reference/v3/code-scans/triggering-code-scans"},{"group":"Code Scans (Organization)","pages":[{"title":"Start Code Scan (Devin API)","sidebarTitle":"Start Code Scan","openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/code-scans","href":"/api-reference/v3/code-scans/organizations-code-scans-start"},{"title":"Start Ingestion Scan (Devin API)","sidebarTitle":"Start Ingestion Scan","openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/code-scans/ingestion","href":"/api-reference/v3/code-scans/organizations-code-scans-start-ingestion"},{"title":"List Code Scans (Devin API)","sidebarTitle":"List Code Scans","openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/code-scans/scans","href":"/api-reference/v3/code-scans/organizations-code-scans-list"},{"title":"List Code Scan Profiles (Devin API)","sidebarTitle":"List Code Scan Profiles","openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/code-scans/profiles","href":"/api-reference/v3/code-scans/organizations-code-scans-profiles"},{"title":"Get Code Scan Profile (Devin API)","sidebarTitle":"Get Code Scan Profile","openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/code-scans/profiles/{profile_id}","href":"/api-reference/v3/code-scans/organizations-code-scans-profile"},{"title":"Get Code Scan Metrics (Devin API)","sidebarTitle":"Get Code Scan Metrics","openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/code-scans/metrics","href":"/api-reference/v3/code-scans/organizations-code-scans-metrics"},{"title":"List Code Scan Findings (Devin API)","sidebarTitle":"List Code Scan Findings","openapi":"v3-openapi.yaml GET /v3/organizations/{org_id}/code-scans/findings","href":"/api-reference/v3/code-scans/organizations-code-scans-findings"},{"title":"Remediate Code Scan Finding (Devin API)","sidebarTitle":"Remediate Code Scan Finding","openapi":"v3-openapi.yaml POST /v3/organizations/{org_id}/code-scans/{scan_id}/findings/{finding_id}/remediate","href":"/api-reference/v3/code-scans/organizations-code-scans-remediate"}]},{"group":"Code Scans (Enterprise)","pages":[{"title":"Start Code Scan (Devin API)","sidebarTitle":"Start Code Scan","openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans","href":"/api-reference/v3/code-scans/enterprise-code-scans-start"},{"title":"Start Ingestion Scan (Devin API)","sidebarTitle":"Start Ingestion Scan","openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans/ingestion","href":"/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion"},{"title":"List Code Scans (Devin API)","sidebarTitle":"List Code Scans","openapi":"v3-openapi.yaml GET /v3/enterprise/code-scans/scans","href":"/api-reference/v3/code-scans/enterprise-code-scans-list"},{"title":"List Code Scan Profiles (Devin API)","sidebarTitle":"List Code Scan Profiles","openapi":"v3-openapi.yaml GET /v3/enterprise/code-scans/profiles","href":"/api-reference/v3/code-scans/enterprise-code-scans-profiles"},{"title":"Get Code Scan Profile (Devin API)","sidebarTitle":"Get Code Scan Profile","openapi":"v3-openapi.yaml GET /v3/enterprise/code-scans/profiles/{profile_id}","href":"/api-reference/v3/code-scans/enterprise-code-scans-profile"},{"title":"Get Code Scan Metrics (Devin API)","sidebarTitle":"Get Code Scan Metrics","openapi":"v3-openapi.yaml GET /v3/enterprise/code-scans/metrics","href":"/api-reference/v3/code-scans/enterprise-code-scans-metrics"},{"title":"List Code Scan Findings (Devin API)","sidebarTitle":"List Code Scan Findings","openapi":"v3-openapi.yaml GET /v3/enterprise/code-scans/findings","href":"/api-reference/v3/code-scans/enterprise-code-scans-findings"},{"title":"Remediate Code Scan Finding (Devin API)","sidebarTitle":"Remediate Code Scan Finding","openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans/{scan_id}/findings/{finding_id}/remediate","href":"/api-reference/v3/code-scans/enterprise-code-scans-remediate"}]}]},{"group":"Infrastructure","pages":[{"group":"Queue (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/queue","title":"Get Queue","href":"/api-reference/v3/queue/enterprise-queue"}]},{"group":"Hypervisors (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/hypervisors","title":"List Hypervisors","href":"/api-reference/v3/hypervisors/hypervisors"}]}]},{"group":"Identity \u0026 Access","pages":[{"group":"Self","pages":[{"openapi":"v3-openapi.yaml GET /v3/self","title":"Get Self","href":"/api-reference/v3/self/self"}]},{"group":"Users \u0026 Membership (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/users","title":"List Users","href":"/api-reference/v3/users/members-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/users/{user_id}","title":"Get User","href":"/api-reference/v3/users/get-members-user"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/members/users","title":"Invite Users","href":"/api-reference/v3/users/post-members-users"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/members/users/{user_id}","title":"Update User","href":"/api-reference/v3/users/patch-members-users"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/members/users/{user_id}","title":"Delete User","href":"/api-reference/v3/users/delete-members-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/idp-users","title":"List IDP Group Users","href":"/api-reference/v3/users/members-idp-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/members/users","title":"List Organization Users","href":"/api-reference/v3/users/organizations-members-users"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/members/users/{user_id}","title":"Assign Organization User","href":"/api-reference/v3/users/post-organizations-members-users"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/organizations/{org_id}/members/users/{user_id}","title":"Update Organization User","href":"/api-reference/v3/users/patch-organizations-members-users"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/members/users/{user_id}","title":"Delete Organization User","href":"/api-reference/v3/users/delete-organizations-members-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/members/idp-users","title":"List Organization IDP Group Users","href":"/api-reference/v3/users/organizations-members-idp-users"}]},{"group":"Users \u0026 Membership (Organization) [Beta]","pages":[{"openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/members/users","tag":"Beta","title":"List Organization Users","href":"/api-reference/v3/users/list-organization-users"},{"openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/members/users/{user_id}","tag":"Beta","title":"Get Organization User","href":"/api-reference/v3/users/get-organization-user"},{"openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/members/idp-users","tag":"Beta","title":"List Organization IDP Group Users","href":"/api-reference/v3/users/list-organization-idp-users"}]},{"group":"Roles (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/roles","title":"List Roles","href":"/api-reference/v3/roles/roles"}]},{"group":"Service Users (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/service-users","title":"List Service Users","href":"/api-reference/v3/service-users/members-service-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/service-users/{service_user_id}","title":"Get Service User","href":"/api-reference/v3/service-users/get-members-service-user"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/members/service-users/{service_user_id}","title":"Assign Service User","href":"/api-reference/v3/service-users/post-members-service-users"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/members/service-users/{service_user_id}","title":"Update Service User","href":"/api-reference/v3/service-users/patch-members-service-users"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/members/service-users/{service_user_id}","title":"Delete Service User","href":"/api-reference/v3/service-users/delete-members-service-users"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/members/service-users","title":"List Organization Service Users","href":"/api-reference/v3/service-users/organizations-members-service-users"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/members/service-users/{service_user_id}","title":"Assign Organization Service User","href":"/api-reference/v3/service-users/post-organizations-members-service-users"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/organizations/{org_id}/members/service-users/{service_user_id}","title":"Update Organization Service User","href":"/api-reference/v3/service-users/patch-organizations-members-service-users"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/members/service-users/{service_user_id}","title":"Delete Organization Service User","href":"/api-reference/v3/service-users/delete-organizations-members-service-users"}]},{"group":"Service User API Keys (Enterprise) [Beta]","pages":[{"openapi":"v3-openapi.yaml GET /v3beta1/enterprise/service-users/{service_user_id}/api-keys","title":"List API keys for service user","href":"/api-reference/v3/service-users/get-enterprise-service-user-api-keys"},{"openapi":"v3-openapi.yaml POST /v3beta1/enterprise/service-users/{service_user_id}/api-keys","title":"Create API key for service user","href":"/api-reference/v3/service-users/post-enterprise-service-user-api-keys"},{"openapi":"v3-openapi.yaml DELETE /v3beta1/enterprise/service-users/{service_user_id}/api-keys/{api_key_id}","title":"Revoke API key for service user","href":"/api-reference/v3/service-users/delete-enterprise-service-user-api-key"},{"openapi":"v3-openapi.yaml POST /v3beta1/enterprise/service-users/{service_user_id}/api-keys/{api_key_id}/rotate","title":"Rotate API key for service user","href":"/api-reference/v3/service-users/rotate-enterprise-service-user-api-key"}]},{"group":"IDP Groups (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/idp-groups","title":"List IDP Groups","href":"/api-reference/v3/idp-groups/members-idp-groups"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/members/idp-groups/{idp_group_name}","title":"Get IDP Group","href":"/api-reference/v3/idp-groups/get-members-idp-group"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/members/idp-groups/{idp_group_name}","title":"Assign IDP Group","href":"/api-reference/v3/idp-groups/post-members-idp-groups"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/members/idp-groups/{idp_group_name}","title":"Update IDP Group","href":"/api-reference/v3/idp-groups/patch-members-idp-groups"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/members/idp-groups/{idp_group_name}","title":"Delete IDP Group","href":"/api-reference/v3/idp-groups/delete-members-idp-groups"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/members/idp-groups","title":"List Organization IDP Groups","href":"/api-reference/v3/idp-groups/list-organizations-members-idp-groups"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/members/idp-groups/{idp_group_name}","title":"Get Organization IDP Group","href":"/api-reference/v3/idp-groups/organizations-members-idp-groups"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/members/idp-groups/{idp_group_name}","title":"Assign Organization IDP Group","href":"/api-reference/v3/idp-groups/post-organizations-members-idp-groups"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/organizations/{org_id}/members/idp-groups/{idp_group_name}","title":"Update Organization IDP Group","href":"/api-reference/v3/idp-groups/patch-organizations-members-idp-groups"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/members/idp-groups/{idp_group_name}","title":"Delete Organization IDP Group","href":"/api-reference/v3/idp-groups/delete-organizations-members-idp-groups"}]},{"group":"IDP Group Registration (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/idp-groups","title":"List Account IDP Groups","href":"/api-reference/v3/idp-groups/enterprise-idp-groups"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/idp-groups","title":"Register Account IDP Groups","href":"/api-reference/v3/idp-groups/post-enterprise-idp-groups"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/idp-groups/{idp_group_name}","title":"Delete Account IDP Group","href":"/api-reference/v3/idp-groups/delete-enterprise-idp-group"}]},{"title":"Personal Access Tokens","href":"/api-reference/personal-access-tokens"}]},{"group":"Configuration","pages":[{"group":"Organizations (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations","title":"List Organizations","href":"/api-reference/v3/organizations/organizations"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/organizations","title":"Create Organization","href":"/api-reference/v3/organizations/post-organizations"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}","title":"Get Organization","href":"/api-reference/v3/organizations/get-enterprise-organization"},{"openapi":"v3-openapi.yaml PATCH /v3/enterprise/organizations/{org_id}","title":"Update Organization","href":"/api-reference/v3/organizations/patch-organizations"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}","title":"Delete Organization","href":"/api-reference/v3/organizations/delete-organizations"}]},{"group":"Tags (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/tags","title":"Get Organization Allowed Tags","href":"/api-reference/v3/tags/organizations-tags"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/tags","title":"Append Organization Tags","href":"/api-reference/v3/tags/post-organizations-tags"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/organizations/{org_id}/tags","title":"Replace Organization Allowed Tags","href":"/api-reference/v3/tags/put-organizations-tags"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/tags","title":"Clear Organization Tags","href":"/api-reference/v3/tags/delete-organizations-tags"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/tags/{tag}","title":"Remove Organization Tag","href":"/api-reference/v3/tags/delete-organizations-tags-tag"},{"openapi":"v3-openapi.yaml GET /v3/enterprise/organizations/{org_id}/tags/default","title":"Get Organization Default Tag","href":"/api-reference/v3/tags/get-enterprise-organizations-default-tag"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/organizations/{org_id}/tags/default","title":"Set Organization Default Tag","href":"/api-reference/v3/tags/put-enterprise-organizations-default-tag"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/organizations/{org_id}/tags/default","title":"Clear Organization Default Tag","href":"/api-reference/v3/tags/delete-enterprise-organizations-default-tag"}]},{"group":"IP Access List (Enterprise)","pages":[{"openapi":"v3-openapi.yaml GET /v3/enterprise/ip-access-list","title":"Get IP Access List","href":"/api-reference/v3/ip-access-list/get-ip-access-list"},{"openapi":"v3-openapi.yaml POST /v3/enterprise/ip-access-list","title":"Add IPs to IP Access List","href":"/api-reference/v3/ip-access-list/add-ip-access-list"},{"openapi":"v3-openapi.yaml PUT /v3/enterprise/ip-access-list","title":"Replace IP Access List","href":"/api-reference/v3/ip-access-list/replace-ip-access-list"},{"openapi":"v3-openapi.yaml DELETE /v3/enterprise/ip-access-list","title":"Clear IP Access List","href":"/api-reference/v3/ip-access-list/clear-ip-access-list"}]},{"group":"Organization Settings (Organization) [Beta]","pages":[{"title":"Get Organization Default Platform (Devin API)","sidebarTitle":"Get Default Platform","openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/default-platform","tag":"Beta","href":"/api-reference/v3/organization-settings/get-organization-default-platform"},{"title":"Set Organization Default Platform (Devin API)","sidebarTitle":"Set Default Platform","openapi":"v3-openapi.yaml PUT /v3beta1/organizations/{org_id}/default-platform","tag":"Beta","href":"/api-reference/v3/organization-settings/put-organization-default-platform"}]},{"group":"Security Profiles (Organization) [Beta]","pages":[{"openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/security-profiles","tag":"Beta","title":"List org security profiles","href":"/api-reference/v3/security-profiles/list-organizations-security-profiles"},{"openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/security-profiles/{profile_id}","tag":"Beta","title":"Get an org security profile","href":"/api-reference/v3/security-profiles/get-organizations-security-profile"},{"openapi":"v3-openapi.yaml POST /v3beta1/organizations/{org_id}/security-profiles","tag":"Beta","title":"Create an org security profile","href":"/api-reference/v3/security-profiles/post-organizations-security-profile"},{"openapi":"v3-openapi.yaml PATCH /v3beta1/organizations/{org_id}/security-profiles/{profile_id}","tag":"Beta","title":"Update an org security profile","href":"/api-reference/v3/security-profiles/patch-organizations-security-profile"},{"openapi":"v3-openapi.yaml DELETE /v3beta1/organizations/{org_id}/security-profiles/{profile_id}","tag":"Beta","title":"Delete an org security profile","href":"/api-reference/v3/security-profiles/delete-organizations-security-profile"},{"openapi":"v3-openapi.yaml GET /v3beta1/organizations/{org_id}/security-profile-settings","tag":"Beta","title":"Get org security profile settings","href":"/api-reference/v3/security-profiles/get-organizations-security-profile-settings"},{"openapi":"v3-openapi.yaml PATCH /v3beta1/organizations/{org_id}/security-profile-settings","tag":"Beta","title":"Update org security profile settings","href":"/api-reference/v3/security-profiles/patch-organizations-security-profile-settings"}]},{"group":"Security Profiles (Enterprise) [Beta]","pages":[{"openapi":"v3-openapi.yaml GET /v3beta1/enterprise/security-profiles","tag":"Beta","title":"List enterprise security profiles","href":"/api-reference/v3/security-profiles/list-enterprise-security-profiles"},{"openapi":"v3-openapi.yaml GET /v3beta1/enterprise/security-profiles/{profile_id}","tag":"Beta","title":"Get an enterprise security profile","href":"/api-reference/v3/security-profiles/get-enterprise-security-profile"},{"openapi":"v3-openapi.yaml POST /v3beta1/enterprise/security-profiles","tag":"Beta","title":"Create an enterprise security profile","href":"/api-reference/v3/security-profiles/post-enterprise-security-profile"},{"openapi":"v3-openapi.yaml PATCH /v3beta1/enterprise/security-profiles/{profile_id}","tag":"Beta","title":"Update an enterprise security profile","href":"/api-reference/v3/security-profiles/patch-enterprise-security-profile"},{"openapi":"v3-openapi.yaml DELETE /v3beta1/enterprise/security-profiles/{profile_id}","tag":"Beta","title":"Delete an enterprise security profile","href":"/api-reference/v3/security-profiles/delete-enterprise-security-profile"},{"openapi":"v3-openapi.yaml GET /v3beta1/enterprise/security-profile-settings","tag":"Beta","title":"Get enterprise security profile settings","href":"/api-reference/v3/security-profiles/get-enterprise-security-profile-settings"},{"openapi":"v3-openapi.yaml PATCH /v3beta1/enterprise/security-profile-settings","tag":"Beta","title":"Update enterprise security profile settings","href":"/api-reference/v3/security-profiles/patch-enterprise-security-profile-settings"}]}]},{"group":"Legacy API v1","pages":[{"title":"v1 API Overview (Legacy)","href":"/api-reference/v1/overview"},{"group":"Session Endpoints","pages":[{"openapi":"v1-openapi.yaml GET /v1/sessions","title":"List sessions","href":"/api-reference/v1/sessions/list-sessions"},{"openapi":"v1-openapi.yaml POST /v1/sessions","title":"Create a new session","href":"/api-reference/v1/sessions/create-a-new-devin-session"},{"openapi":"v1-openapi.yaml GET /v1/sessions/{session_id}","title":"Retrieve details about an existing session","href":"/api-reference/v1/sessions/retrieve-details-about-an-existing-session"},{"openapi":"v1-openapi.yaml POST /v1/sessions/{session_id}/message","title":"Send a message to a session","href":"/api-reference/v1/sessions/send-a-message-to-an-existing-devin-session"},{"openapi":"v1-openapi.yaml DELETE /v1/sessions/{session_id}","title":"Terminate a session","href":"/api-reference/v1/sessions/terminate-a-session"},{"openapi":"v1-openapi.yaml POST /v1/attachments","title":"Upload an attachment","href":"/api-reference/v1/attachments/upload-files-for-devin-to-work-with"},{"openapi":"v1-openapi.yaml GET /v1/attachments/{uuid}/{name}","title":"Download an attachment","href":"/api-reference/v1/attachments/download-attachment-files"},{"openapi":"v1-openapi.yaml PUT /v1/sessions/{session_id}/tags","title":"Update session tags","href":"/api-reference/v1/sessions/update-session-tags"}]},{"group":"Knowledge Endpoints","pages":[{"openapi":"v1-openapi.yaml GET /v1/knowledge","title":"List all knowledge","href":"/api-reference/v1/knowledge/list-knowledge"},{"openapi":"v1-openapi.yaml POST /v1/knowledge","title":"Create knowledge entry","href":"/api-reference/v1/knowledge/create-knowledge"},{"openapi":"v1-openapi.yaml PUT /v1/knowledge/{note_id}","title":"Update knowledge entry","href":"/api-reference/v1/knowledge/update-knowledge"},{"openapi":"v1-openapi.yaml DELETE /v1/knowledge/{note_id}","title":"Delete knowledge entry","href":"/api-reference/v1/knowledge/delete-knowledge"}]},{"group":"Playbooks Endpoints","pages":[{"title":"List Playbooks","openapi":"v1-openapi.yaml GET /v1/playbooks","href":"/api-reference/v1/playbooks/list-playbooks"},{"title":"Create Playbook","openapi":"v1-openapi.yaml POST /v1/playbooks","href":"/api-reference/v1/playbooks/create-playbook"},{"title":"Get Playbook","openapi":"v1-openapi.yaml GET /v1/playbooks/{playbook_id}","href":"/api-reference/v1/playbooks/get-playbook"},{"title":"Update Playbook","openapi":"v1-openapi.yaml PUT /v1/playbooks/{playbook_id}","href":"/api-reference/v1/playbooks/update-playbook"},{"title":"Delete Playbook","openapi":"v1-openapi.yaml DELETE /v1/playbooks/{playbook_id}","href":"/api-reference/v1/playbooks/delete-playbook"}]},{"group":"Secrets Endpoints","pages":[{"openapi":"v1-openapi.yaml GET /v1/secrets","title":"List secrets","href":"/api-reference/v1/secrets/list-secrets"},{"title":"Create Secret","api":"POST /v1/secrets","href":"/api-reference/v1/secrets/create-secret"},{"openapi":"v1-openapi.yaml DELETE /v1/secrets/{secret_id}","title":"Delete a secret","href":"/api-reference/v1/secrets/delete-secret"}]}]},{"group":"Legacy API v2","pages":[{"title":"v2 API Overview (Legacy)","href":"/api-reference/v2/overview"},{"group":"API Key Endpoints","pages":[{"title":"Create a Service API Key","openapi":"v2-openapi.yaml POST /v2/enterprise/api-keys","href":"/api-reference/v2/api-keys/provision-service-key"},{"title":"List API Keys","openapi":"v2-openapi.yaml GET /v2/enterprise/api-keys","href":"/api-reference/v2/api-keys/list-enterprise-api-keys"},{"title":"Revoke API Key","openapi":"v2-openapi.yaml DELETE /v2/enterprise/api-keys/{api_key_id}","href":"/api-reference/v2/api-keys/revoke-enterprise-api-key"}]},{"group":"Audit Log Endpoints","pages":[{"openapi":"v2-openapi.yaml GET /v2/enterprise/audit-logs","title":"Get Audit Logs","href":"/api-reference/v2/audit-logs"}]},{"group":"Consumption Endpoints","pages":[{"title":"Consumption Cycles","openapi":"v2-openapi.yaml GET /v2/enterprise/consumption/cycles","href":"/api-reference/v2/consumption/consumption-cycles"},{"title":"Daily Consumption","openapi":"v2-openapi.yaml GET /v2/enterprise/consumption/daily","href":"/api-reference/v2/consumption/daily-consumption"},{"title":"User Daily Consumption","openapi":"v2-openapi.yaml GET /v2/enterprise/consumption/daily/{user_id}","href":"/api-reference/v2/consumption/user-daily-consumption"}]},{"group":"Groups Endpoints","pages":[{"title":"List Enterprise Groups","openapi":"v2-openapi.yaml GET /v2/enterprise/groups","href":"/api-reference/v2/groups/list-enterprise-groups"},{"title":"Get Group Details","openapi":"v2-openapi.yaml GET /v2/enterprise/groups/{group_name}","href":"/api-reference/v2/groups/get-group-details"}]},{"group":"Infrastructure Endpoints","pages":[{"title":"List Hypervisors","openapi":"v2-openapi.yaml GET /v2/enterprise/hypervisors/health","href":"/api-reference/v2/infrastructure/list-enterprise-hypervisors"}]},{"group":"Members Endpoints","pages":[{"title":"List Enterprise Members","openapi":"v2-openapi.yaml GET /v2/enterprise/members","href":"/api-reference/v2/members/list-enterprise-members"},{"title":"Get Member Details","openapi":"v2-openapi.yaml GET /v2/enterprise/members/{user_id}","href":"/api-reference/v2/members/get-member-details"},{"title":"Delete Enterprise Member","openapi":"v2-openapi.yaml DELETE /v2/enterprise/members/{user_id}","href":"/api-reference/v2/members/delete-enterprise-member"},{"title":"User Organizations","openapi":"v2-openapi.yaml GET /v2/enterprise/members/{user_id}/organizations","href":"/api-reference/v2/members/user-organizations"},{"title":"Invite Enterprise Members","openapi":"v2-openapi.yaml POST /v2/enterprise/members/invite","href":"/api-reference/v2/members/invite-enterprise-members"}]},{"group":"Metrics Endpoints","pages":[{"title":"PR Metrics","openapi":"v2-openapi.yaml GET /v2/enterprise/metrics/prs","href":"/api-reference/v2/consumption/pr-metrics"},{"title":"Sessions Metrics","openapi":"v2-openapi.yaml GET /v2/enterprise/metrics/sessions","href":"/api-reference/v2/consumption/sessions-metrics"},{"title":"Searches Metrics","openapi":"v2-openapi.yaml GET /v2/enterprise/metrics/searches","href":"/api-reference/v2/consumption/searches-metrics"},{"title":"Usage Metrics","openapi":"v2-openapi.yaml GET /v2/enterprise/metrics/usage","href":"/api-reference/v2/consumption/usage-metrics"}]},{"group":"Organizations Endpoints","pages":[{"group":"Organizations","pages":[{"title":"List Organizations","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations","href":"/api-reference/v2/organizations/list-organizations"},{"title":"Create Organization","openapi":"v2-openapi.yaml POST /v2/enterprise/organizations","href":"/api-reference/v2/organizations/create-organization"},{"title":"Get Organization Details","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}","href":"/api-reference/v2/organizations/get-organization-details"},{"title":"Update Organization","openapi":"v2-openapi.yaml PATCH /v2/enterprise/organizations/{org_id}","href":"/api-reference/v2/organizations/update-organization"},{"title":"Delete Organization","openapi":"v2-openapi.yaml DELETE /v2/enterprise/organizations/{org_id}","href":"/api-reference/v2/organizations/delete-organization"}]},{"group":"Organization Groups","pages":[{"title":"Organization Groups","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}/groups","href":"/api-reference/v2/organizations/organization-groups"},{"title":"Add Group to Organization","openapi":"v2-openapi.yaml POST /v2/enterprise/organizations/{org_id}/groups","href":"/api-reference/v2/organizations/add-group-to-organization"}]},{"group":"Organization Members","pages":[{"title":"Organization Members","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}/members","href":"/api-reference/v2/organizations/organization-members"},{"title":"Add Organization Members","openapi":"v2-openapi.yaml POST /v2/enterprise/organizations/{org_id}/members","href":"/api-reference/v2/organizations/add-organization-members"},{"title":"Remove User from Organization","openapi":"v2-openapi.yaml DELETE /v2/enterprise/organizations/{org_id}/members/{user_id}","href":"/api-reference/v2/organizations/remove-user-from-organization"},{"title":"Update organization member roles","openapi":"v2-openapi.yaml PATCH /v2/enterprise/organizations/{org_id}/members/roles","href":"/api-reference/v2/organizations/update-organization-member-roles"}]},{"group":"Organization Connections","pages":[{"title":"Organization Connections","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}/git/connections","href":"/api-reference/v2/organizations/organization-connections"}]},{"group":"Organization Permissions","pages":[{"title":"Organization Permissions","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}/git/permissions","href":"/api-reference/v2/organizations/organization-permissions"},{"title":"Add Organization Permissions","openapi":"v2-openapi.yaml POST /v2/enterprise/organizations/{org_id}/git/permissions","href":"/api-reference/v2/organizations/add-organization-permissions"},{"title":"Delete Organization Permission","openapi":"v2-openapi.yaml DELETE /v2/enterprise/organizations/{org_id}/git/permissions/{permission_id}","href":"/api-reference/v2/organizations/delete-organization-permission"}]}]},{"group":"Playbooks Endpoints","pages":[{"title":"List Enterprise Playbooks","openapi":"v2-openapi.yaml GET /v2/enterprise/playbooks","href":"/api-reference/v2/playbooks/list-playbooks"},{"title":"Create Enterprise Playbook","openapi":"v2-openapi.yaml POST /v2/enterprise/playbooks","href":"/api-reference/v2/playbooks/create-playbook"}]},{"group":"Repository Endpoints (Beta)","pages":[{"title":"Get Repository Indexing Status","openapi":"v2-openapi.yaml GET /beta/v2/enterprise/repositories/{org_id}","href":"/api-reference/v2/repositories/get-repository-status"},{"title":"Bulk Index Repositories","openapi":"v2-openapi.yaml POST /beta/v2/enterprise/repositories/bulk-index","href":"/api-reference/v2/repositories/bulk-index-repositories"}]},{"group":"Roles Endpoints","pages":[{"title":"List available roles","openapi":"v2-openapi.yaml GET /v2/enterprise/roles","href":"/api-reference/v2/members/list-roles"}]},{"group":"Sessions Endpoints","pages":[{"group":"Enterprise Sessions","pages":[{"title":"List Enterprise Sessions","openapi":"v2-openapi.yaml GET /v2/enterprise/sessions","href":"/api-reference/v2/sessions/list-enterprise-sessions"},{"title":"List Enterprise Sessions (Insights)","openapi":"v2-openapi.yaml GET /v2/enterprise/sessions/insights","href":"/api-reference/v2/sessions/list-enterprise-sessions-insights"},{"title":"Get Enterprise Session","openapi":"v2-openapi.yaml GET /v2/enterprise/sessions/{session_id}","href":"/api-reference/v2/sessions/get-enterprise-session"}]},{"group":"Organization Sessions","pages":[{"title":"List Organization Sessions","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}/sessions","href":"/api-reference/v2/sessions/list-organization-sessions"},{"title":"List Organization Sessions (Insights)","openapi":"v2-openapi.yaml GET /v2/enterprise/organizations/{org_id}/sessions/insights","href":"/api-reference/v2/sessions/list-organization-sessions-insights"}]}]},{"group":"Self Endpoints","pages":[{"title":"Get Self","openapi":"v2-openapi.yaml GET /v2/enterprise/self","href":"/api-reference/v2/self/get-self"}]},{"group":"User Usage Endpoints (Beta)","pages":[{"title":"Get User Usage Analysis (Beta)","api":"GET /beta/v2/enterprise/user-usage-analysis","href":"/api-reference/v2/user-usage/get-user-usage-analysis-beta"}]}]}]},{"tab":"SDK","hidden":true,"versions":[{"version":"0.0.1-beta","default":true,"tag":"Beta","groups":[{"group":"Get started","pages":[{"title":"Devin SDK overview","sidebarTitle":"Devin SDK","href":"/sdk/index"},{"title":"Devin SDK quickstart","sidebarTitle":"Quickstart","href":"/sdk/quickstart"},{"title":"How the Devin SDK works: local vs cloud","sidebarTitle":"How it works","href":"/sdk/how-it-works"}]},{"group":"Sessions","pages":[{"title":"Stream session events with the Devin SDK","sidebarTitle":"Stream events","href":"/sdk/guides/streaming-events"},{"title":"Watch a Devin session with the SDK","sidebarTitle":"Watch a session","href":"/sdk/guides/watching-sessions"},{"title":"Devin SDK structured output and launchSession","sidebarTitle":"Launch and structured output","href":"/sdk/guides/launch-and-structured-output"},{"title":"Local Devin sessions with the SDK","sidebarTitle":"Local sessions","href":"/sdk/guides/local-sessions"},{"title":"Cloud Devin sessions and devin.api","sidebarTitle":"Cloud sessions","href":"/sdk/guides/cloud-sessions"},{"title":"Trace Devin SDK sessions to Langfuse","sidebarTitle":"Tracing","href":"/sdk/guides/tracing"},{"title":"Devin SDK environments and base URLs","sidebarTitle":"Environments","href":"/sdk/guides/environments"}]},{"group":"Integrations","pages":[{"group":"AI SDK UI streams","pages":[{"title":"Devin with the AI SDK UI (useChat)","sidebarTitle":"AI SDK UI streams","href":"/sdk/ai-sdk/overview"}]},{"group":"Cloudflare Agents","pages":[{"title":"Devin on Cloudflare Agents","sidebarTitle":"Cloudflare Agents","href":"/sdk/cloudflare-agents/overview"}]},{"group":"AI SDK harness","pages":[{"title":"Devin AI SDK harness","sidebarTitle":"Overview","href":"/sdk/harness/overview"},{"title":"Devin AI SDK harness diagnostics","sidebarTitle":"Diagnostics","href":"/sdk/harness/diagnostics"}]}]},{"group":"Examples","pages":[{"title":"Devin SDK examples","sidebarTitle":"Examples","href":"/sdk/examples/overview"},{"title":"Devin SDK example: quickstart","sidebarTitle":"Quickstart","href":"/sdk/examples/quickstart"},{"title":"Devin SDK example: Anthropic agent patterns","sidebarTitle":"Anthropic agent patterns","href":"/sdk/examples/anthropic-patterns"},{"title":"Devin SDK example: harness chat","sidebarTitle":"Harness chat","href":"/sdk/examples/harness-chat"},{"title":"Devin SDK example: Cloudflare Agents chat","sidebarTitle":"Cloudflare Agents chat","href":"/sdk/examples/cloudflare-agents"},{"title":"Devin SDK example: session board","sidebarTitle":"Session board","href":"/sdk/examples/session-board"},{"title":"Devin SDK example: ticket enricher","sidebarTitle":"Ticket enricher","href":"/sdk/examples/ticket-enricher"}]},{"group":"SDK reference","pages":[{"title":"Devin SDK reference","sidebarTitle":"SDK reference","href":"/sdk/reference/overview"},{"href":"/sdk/reference/package-overview","title":"@cognition-ai/sdk"},{"group":"Classes","pages":[{"href":"/sdk/reference/classes/AcpSession","title":"AcpSession","tag":"CLASS"},{"href":"/sdk/reference/classes/CloudDevin","title":"CloudDevin","tag":"CLASS"},{"href":"/sdk/reference/classes/CloudSession","title":"CloudSession","tag":"CLASS"},{"href":"/sdk/reference/classes/ConnectionClosedError","title":"ConnectionClosedError","tag":"CLASS"},{"href":"/sdk/reference/classes/DevinError","title":"DevinError","tag":"CLASS"},{"href":"/sdk/reference/classes/JsonRpcError","title":"JsonRpcError","tag":"CLASS"},{"href":"/sdk/reference/classes/LocalDevin","title":"LocalDevin","tag":"CLASS"},{"href":"/sdk/reference/classes/LocalSession","title":"LocalSession","tag":"CLASS"},{"href":"/sdk/reference/classes/ModelRejectedError","title":"ModelRejectedError","tag":"CLASS"},{"href":"/sdk/reference/classes/SessionEventReducer","title":"SessionEventReducer","tag":"CLASS"},{"href":"/sdk/reference/classes/SessionStartupError","title":"SessionStartupError","tag":"CLASS"},{"href":"/sdk/reference/classes/SessionTracer","title":"SessionTracer","tag":"CLASS"},{"href":"/sdk/reference/classes/Turn","title":"Turn","tag":"CLASS"}]},{"group":"Interfaces","pages":[{"href":"/sdk/reference/interfaces/AcpAgentCapabilities","title":"AcpAgentCapabilities","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/AcpImplementation","title":"AcpImplementation","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/AcpPromptCapabilities","title":"AcpPromptCapabilities","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ActivityEvent","title":"ActivityEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/AgentStoppedNotification","title":"AgentStoppedNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/BillingInformationNotification","title":"BillingInformationNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/BrowserPreviewCaptureNotification","title":"BrowserPreviewCaptureNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/BrowserPreviewConsoleLine","title":"BrowserPreviewConsoleLine","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/BrowserPreviewOpenedNotification","title":"BrowserPreviewOpenedNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ClipboardWriteNotification","title":"ClipboardWriteNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CloudDevinOptions","title":"CloudDevinOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CloudListSessionsOptions","title":"CloudListSessionsOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CloudLoadSessionOptions","title":"CloudLoadSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CloudSessionOptions","title":"CloudSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CloudSessionsPage","title":"CloudSessionsPage","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CognitionAgentResponseMap","title":"CognitionAgentResponseMap","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CommandsChangeEvent","title":"CommandsChangeEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/CompactionNotification","title":"CompactionNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ConnectionRetryNotification","title":"ConnectionRetryNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ContentBlock","title":"ContentBlock","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/DevinClient","title":"DevinClient","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/EndSessionOptions","title":"EndSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/EphemeralPresenceNotification","title":"EphemeralPresenceNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/FileUpdate","title":"FileUpdate","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/FusionModel","title":"FusionModel","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/HistoryPage","title":"HistoryPage","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/InitializeResult","title":"InitializeResult","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LaunchedSession","title":"LaunchedSession","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LaunchSessionOptions","title":"LaunchSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LifecycleEvent","title":"LifecycleEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ListSessionsOptions","title":"ListSessionsOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ListSessionsResult","title":"ListSessionsResult","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LoadedSession","title":"LoadedSession","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LoadSessionOptions","title":"LoadSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LocalDevinOptions","title":"LocalDevinOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/LocalSessionOptions","title":"LocalSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/McpServersChangedNotification","title":"McpServersChangedNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/MergePullRequestOptions","title":"MergePullRequestOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/MessageDeltaEvent","title":"MessageDeltaEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/MessagesInQueuedNotification","title":"MessagesInQueuedNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ModeChangeEvent","title":"ModeChangeEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ModelOption","title":"ModelOption","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ObserveOptions","title":"ObserveOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/OutgoingPrompt","title":"OutgoingPrompt","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/OutputNotification","title":"OutputNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PermissionOption","title":"PermissionOption","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PermissionRequest","title":"PermissionRequest","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PlanEntry","title":"PlanEntry","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PlanEvent","title":"PlanEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PluginsChangedNotification","title":"PluginsChangedNotification","tag":"INTERFACE"},{"href":"/sdk/reference/prompt/interfaces/PromptOptions","title":"prompt.PromptOptions","tag":"INTERFACE"},{"href":"/sdk/reference/prompt/interfaces/ResourceOptions","title":"prompt.ResourceOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PromptCapabilities","title":"PromptCapabilities","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PromptCapabilitiesMeta","title":"PromptCapabilitiesMeta","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PromptResult","title":"PromptResult","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/PullRequestEvent","title":"PullRequestEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/QueuedMessageEntry","title":"QueuedMessageEntry","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/RawEvent","title":"RawEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/RevertHistoryRewoundNotification","title":"RevertHistoryRewoundNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/RevertOptions","title":"RevertOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/RevertStepInfo","title":"RevertStepInfo","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/RevertStepsUpdatedNotification","title":"RevertStepsUpdatedNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/RunOptions","title":"RunOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionConfigOption","title":"SessionConfigOption","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionConfigSelectOption","title":"SessionConfigSelectOption","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionInfo","title":"SessionInfo","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionInstrumentation","title":"SessionInstrumentation","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionModels","title":"SessionModels","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionNotification","title":"SessionNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionObserver","title":"SessionObserver","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionOptions","title":"SessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionOutcome","title":"SessionOutcome","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionTraceOptions","title":"SessionTraceOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SessionUpdate","title":"SessionUpdate","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ShowModalNotification","title":"ShowModalNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SpendingLimitOptions","title":"SpendingLimitOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/StandardSchema","title":"StandardSchema","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/StateUpdate","title":"StateUpdate","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/StatusEvent","title":"StatusEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/SubagentContext","title":"SubagentContext","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/TailReplayInfo","title":"TailReplayInfo","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ThinkingCompleteNotification","title":"ThinkingCompleteNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ThoughtDeltaEvent","title":"ThoughtDeltaEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ToolCall","title":"ToolCall","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ToolCallContent","title":"ToolCallContent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ToolCallEvent","title":"ToolCallEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/ToolCallLocation","title":"ToolCallLocation","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/TraceSessionOptions","title":"TraceSessionOptions","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/TurnStateEvent","title":"TurnStateEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/TypingEvent","title":"TypingEvent","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/UnknownExtensionNotification","title":"UnknownExtensionNotification","tag":"INTERFACE"},{"href":"/sdk/reference/interfaces/UserMessageEvent","title":"UserMessageEvent","tag":"INTERFACE"}]},{"group":"Functions","pages":[{"href":"/sdk/reference/functions/activityEnum","title":"activityEnum","tag":"FUNCTION"},{"href":"/sdk/reference/functions/agentCapabilities","title":"agentCapabilities","tag":"FUNCTION"},{"href":"/sdk/reference/functions/availableMentionTypes","title":"availableMentionTypes","tag":"FUNCTION"},{"href":"/sdk/reference/functions/blockedAction","title":"blockedAction","tag":"FUNCTION"},{"href":"/sdk/reference/functions/chain","title":"chain","tag":"FUNCTION"},{"href":"/sdk/reference/functions/clientMessageId","title":"clientMessageId","tag":"FUNCTION"},{"href":"/sdk/reference/functions/cognitionErrorKind","title":"cognitionErrorKind","tag":"FUNCTION"},{"href":"/sdk/reference/functions/createDevin","title":"createDevin","tag":"FUNCTION"},{"href":"/sdk/reference/functions/eventId","title":"eventId","tag":"FUNCTION"},{"href":"/sdk/reference/functions/eventType","title":"eventType","tag":"FUNCTION"},{"href":"/sdk/reference/functions/finishedOutcome","title":"finishedOutcome","tag":"FUNCTION"},{"href":"/sdk/reference/functions/Fusion","title":"Fusion","tag":"FUNCTION"},{"href":"/sdk/reference/functions/getMeta","title":"getMeta","tag":"FUNCTION"},{"href":"/sdk/reference/functions/historySkeleton","title":"historySkeleton","tag":"FUNCTION"},{"href":"/sdk/reference/functions/httpUploadUrl","title":"httpUploadUrl","tag":"FUNCTION"},{"href":"/sdk/reference/functions/inferenceToolName","title":"inferenceToolName","tag":"FUNCTION"},{"href":"/sdk/reference/functions/inputDisabledReason","title":"inputDisabledReason","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isAbort","title":"isAbort","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isCanceled","title":"isCanceled","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isCognitionExtensionMethod","title":"isCognitionExtensionMethod","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isErrorCode","title":"isErrorCode","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isExtension","title":"isExtension","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isOverwrite","title":"isOverwrite","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isRejected","title":"isRejected","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isRetryable","title":"isRetryable","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isStreaming","title":"isStreaming","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isToolCallInputFinal","title":"isToolCallInputFinal","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isToolCallSettled","title":"isToolCallSettled","tag":"FUNCTION"},{"href":"/sdk/reference/functions/isTyping","title":"isTyping","tag":"FUNCTION"},{"href":"/sdk/reference/functions/mergeToolCall","title":"mergeToolCall","tag":"FUNCTION"},{"href":"/sdk/reference/functions/messageSubIndex","title":"messageSubIndex","tag":"FUNCTION"},{"href":"/sdk/reference/functions/parseCognitionExtension","title":"parseCognitionExtension","tag":"FUNCTION"},{"href":"/sdk/reference/functions/prDataUpdated","title":"prDataUpdated","tag":"FUNCTION"},{"href":"/sdk/reference/functions/priority","title":"priority","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/audio","title":"prompt.audio","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/blobResource","title":"prompt.blobResource","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/image","title":"prompt.image","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/resourceLink","title":"prompt.resourceLink","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/text","title":"prompt.text","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/textResource","title":"prompt.textResource","tag":"FUNCTION"},{"href":"/sdk/reference/prompt/functions/toPromptBlocks","title":"prompt.toPromptBlocks","tag":"FUNCTION"},{"href":"/sdk/reference/functions/promptCapabilities","title":"promptCapabilities","tag":"FUNCTION"},{"href":"/sdk/reference/functions/queuePosition","title":"queuePosition","tag":"FUNCTION"},{"href":"/sdk/reference/functions/quotedArtifacts","title":"quotedArtifacts","tag":"FUNCTION"},{"href":"/sdk/reference/functions/rawAgentCapabilities","title":"rawAgentCapabilities","tag":"FUNCTION"},{"href":"/sdk/reference/functions/reduceUpdates","title":"reduceUpdates","tag":"FUNCTION"},{"href":"/sdk/reference/functions/resolveCliPath","title":"resolveCliPath","tag":"FUNCTION"},{"href":"/sdk/reference/functions/retryAfterSeconds","title":"retryAfterSeconds","tag":"FUNCTION"},{"href":"/sdk/reference/functions/sessionLifecycle","title":"sessionLifecycle","tag":"FUNCTION"},{"href":"/sdk/reference/functions/sessionMeta","title":"sessionMeta","tag":"FUNCTION"},{"href":"/sdk/reference/functions/sessionUpdateMeta","title":"sessionUpdateMeta","tag":"FUNCTION"},{"href":"/sdk/reference/functions/stateUpdate","title":"stateUpdate","tag":"FUNCTION"},{"href":"/sdk/reference/functions/statusEnum","title":"statusEnum","tag":"FUNCTION"},{"href":"/sdk/reference/functions/statusMessage","title":"statusMessage","tag":"FUNCTION"},{"href":"/sdk/reference/functions/statusReason","title":"statusReason","tag":"FUNCTION"},{"href":"/sdk/reference/functions/streamingMessageId","title":"streamingMessageId","tag":"FUNCTION"},{"href":"/sdk/reference/functions/subagentContext","title":"subagentContext","tag":"FUNCTION"},{"href":"/sdk/reference/functions/supportsCapability","title":"supportsCapability","tag":"FUNCTION"},{"href":"/sdk/reference/functions/tailReplayInfo","title":"tailReplayInfo","tag":"FUNCTION"},{"href":"/sdk/reference/functions/thinkingDurationMs","title":"thinkingDurationMs","tag":"FUNCTION"},{"href":"/sdk/reference/functions/timestamp","title":"timestamp","tag":"FUNCTION"},{"href":"/sdk/reference/functions/toolCallDetail","title":"toolCallDetail","tag":"FUNCTION"},{"href":"/sdk/reference/functions/toolCallMeta","title":"toolCallMeta","tag":"FUNCTION"},{"href":"/sdk/reference/functions/toolCallText","title":"toolCallText","tag":"FUNCTION"},{"href":"/sdk/reference/functions/toolName","title":"toolName","tag":"FUNCTION"},{"href":"/sdk/reference/functions/traceSession","title":"traceSession","tag":"FUNCTION"},{"href":"/sdk/reference/functions/traceSessions","title":"traceSessions","tag":"FUNCTION"},{"href":"/sdk/reference/functions/userActionRequired","title":"userActionRequired","tag":"FUNCTION"}]},{"group":"Type Aliases","pages":[{"href":"/sdk/reference/types/AcpMeta","title":"AcpMeta","tag":"TYPE"},{"href":"/sdk/reference/types/AcpProtocolVersion","title":"AcpProtocolVersion","tag":"TYPE"},{"href":"/sdk/reference/types/AgentRequestHandler","title":"AgentRequestHandler","tag":"TYPE"},{"href":"/sdk/reference/types/AgentStopCause","title":"AgentStopCause","tag":"TYPE"},{"href":"/sdk/reference/types/BrowserPreviewCapture","title":"BrowserPreviewCapture","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AckBranchPushMeta","title":"CognitionAcp.AckBranchPushMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ActionsRequestMeta","title":"CognitionAcp.ActionsRequestMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ActivatedPlugin","title":"CognitionAcp.ActivatedPlugin","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ActivatedPluginResources","title":"CognitionAcp.ActivatedPluginResources","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ActivatedSkill","title":"CognitionAcp.ActivatedSkill","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ActiveAppDetails","title":"CognitionAcp.ActiveAppDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ActiveDocumentInfo","title":"CognitionAcp.ActiveDocumentInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AdaQueriesBulkArchiveParams","title":"CognitionAcp.AdaQueriesBulkArchiveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AdaQueriesBulkArchiveResponse","title":"CognitionAcp.AdaQueriesBulkArchiveResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AgentCapabilitiesMeta","title":"CognitionAcp.AgentCapabilitiesMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AgentStopCause","title":"CognitionAcp.AgentStopCause","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AgentStoppedNotification","title":"CognitionAcp.AgentStoppedNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ArchivedStatus","title":"CognitionAcp.ArchivedStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AssetsStatus","title":"CognitionAcp.AssetsStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthDiagnosticInfo","title":"CognitionAcp.AuthDiagnosticInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthInstallLicenseParams","title":"CognitionAcp.AuthInstallLicenseParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthInstallLicenseResponse","title":"CognitionAcp.AuthInstallLicenseResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthLoginParams","title":"CognitionAcp.AuthLoginParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthLoginResponse","title":"CognitionAcp.AuthLoginResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthStatusParams","title":"CognitionAcp.AuthStatusParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AuthStatusResponse","title":"CognitionAcp.AuthStatusResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/AvailabilityInfo","title":"CognitionAcp.AvailabilityInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BackgroundExecMeta","title":"CognitionAcp.BackgroundExecMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BlockedActionCode","title":"CognitionAcp.BlockedActionCode","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BlockedActionErrorData","title":"CognitionAcp.BlockedActionErrorData","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/Blueprint","title":"CognitionAcp.Blueprint","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BlueprintDriftChangeType","title":"CognitionAcp.BlueprintDriftChangeType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BlueprintDriftWarningInfo","title":"CognitionAcp.BlueprintDriftWarningInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BotCommentDetails","title":"CognitionAcp.BotCommentDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BrowserPreviewMeta","title":"CognitionAcp.BrowserPreviewMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/BuildJob","title":"CognitionAcp.BuildJob","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/Chain","title":"CognitionAcp.Chain","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CheckRunDetails","title":"CognitionAcp.CheckRunDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ClientLocaleMeta","title":"CognitionAcp.ClientLocaleMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeReportCompletionMeta","title":"CognitionAcp.CodeReportCompletionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanProfileResolution","title":"CognitionAcp.CodeScanProfileResolution","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanProfileSuggestionMeta","title":"CognitionAcp.CodeScanProfileSuggestionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanSessionGetParams","title":"CognitionAcp.CodeScanSessionGetParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanSessionGetResponse","title":"CognitionAcp.CodeScanSessionGetResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanSetupDismissParams","title":"CognitionAcp.CodeScanSetupDismissParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanSetupSubmitParams","title":"CognitionAcp.CodeScanSetupSubmitParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanSetupValue","title":"CognitionAcp.CodeScanSetupValue","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanStartedMeta","title":"CognitionAcp.CodeScanStartedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CodeScanSuggestionDismissParams","title":"CognitionAcp.CodeScanSuggestionDismissParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionActiveAppUpdateMeta","title":"CognitionAcp.CognitionActiveAppUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionActivityUpdateMeta","title":"CognitionAcp.CognitionActivityUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionAcuUsageResetMeta","title":"CognitionAcp.CognitionAcuUsageResetMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionAudioContent","title":"CognitionAcp.CognitionAudioContent","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionAvailableCommandMeta","title":"CognitionAcp.CognitionAvailableCommandMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionAvailableCommandsUpdateMeta","title":"CognitionAcp.CognitionAvailableCommandsUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionBackgroundExecCall","title":"CognitionAcp.CognitionBackgroundExecCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionBlobResourceContents","title":"CognitionAcp.CognitionBlobResourceContents","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionBrowserNavigationMeta","title":"CognitionAcp.CognitionBrowserNavigationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionCheckpointObservationMeta","title":"CognitionAcp.CognitionCheckpointObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionCheckRunObservationMeta","title":"CognitionAcp.CognitionCheckRunObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionComputerUseAction","title":"CognitionAcp.CognitionComputerUseAction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionComputerUseCall","title":"CognitionAcp.CognitionComputerUseCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionComputerUseMeta","title":"CognitionAcp.CognitionComputerUseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionConfigOptionMeta","title":"CognitionAcp.CognitionConfigOptionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionContentBlock","title":"CognitionAcp.CognitionContentBlock","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionContentChunk","title":"CognitionAcp.CognitionContentChunk","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionContentMeta","title":"CognitionAcp.CognitionContentMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionContextGrowth","title":"CognitionAcp.CognitionContextGrowth","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionContextGrowthUpdateMeta","title":"CognitionAcp.CognitionContextGrowthUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionDesktopStatusMeta","title":"CognitionAcp.CognitionDesktopStatusMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionDiff","title":"CognitionAcp.CognitionDiff","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionDiffMeta","title":"CognitionAcp.CognitionDiffMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionEditFileCall","title":"CognitionAcp.CognitionEditFileCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionEmbeddedResource","title":"CognitionAcp.CognitionEmbeddedResource","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionEmbeddedResourceResource","title":"CognitionAcp.CognitionEmbeddedResourceResource","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionEventContextMeta","title":"CognitionAcp.CognitionEventContextMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionEventGroupObservationMeta","title":"CognitionAcp.CognitionEventGroupObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionEventMetadata","title":"CognitionAcp.CognitionEventMetadata","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionExitPlanCall","title":"CognitionAcp.CognitionExitPlanCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionExploreToolActionCall","title":"CognitionAcp.CognitionExploreToolActionCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionFileSearchCall","title":"CognitionAcp.CognitionFileSearchCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionFirstSessionCall","title":"CognitionAcp.CognitionFirstSessionCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionGenericToolCall","title":"CognitionAcp.CognitionGenericToolCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionGuardrailObservationMeta","title":"CognitionAcp.CognitionGuardrailObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionIgnoredGhCommentMeta","title":"CognitionAcp.CognitionIgnoredGhCommentMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionImageContent","title":"CognitionAcp.CognitionImageContent","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionInsightsStateUpdate","title":"CognitionAcp.CognitionInsightsStateUpdate","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionKillTerminalCall","title":"CognitionAcp.CognitionKillTerminalCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionKnowledgeInsightsMeta","title":"CognitionAcp.CognitionKnowledgeInsightsMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionLifecycleUpdateMeta","title":"CognitionAcp.CognitionLifecycleUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionListDirectoryCall","title":"CognitionAcp.CognitionListDirectoryCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionListSessionsRequestMeta","title":"CognitionAcp.CognitionListSessionsRequestMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionListSessionsResponseMeta","title":"CognitionAcp.CognitionListSessionsResponseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionLocalAccessStateObservationMeta","title":"CognitionAcp.CognitionLocalAccessStateObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionMasterPlanObservationMeta","title":"CognitionAcp.CognitionMasterPlanObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionMcpToolCall","title":"CognitionAcp.CognitionMcpToolCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionMcpToolMeta","title":"CognitionAcp.CognitionMcpToolMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionNoteUsedGroupMeta","title":"CognitionAcp.CognitionNoteUsedGroupMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPermissionRequestCall","title":"CognitionAcp.CognitionPermissionRequestCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPermissionRequestMeta","title":"CognitionAcp.CognitionPermissionRequestMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPermissionResolvedCall","title":"CognitionAcp.CognitionPermissionResolvedCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPermissionResolvedMeta","title":"CognitionAcp.CognitionPermissionResolvedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPluginsActivatedMeta","title":"CognitionAcp.CognitionPluginsActivatedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPrCloseObservationMeta","title":"CognitionAcp.CognitionPrCloseObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPrDataUpdated","title":"CognitionAcp.CognitionPrDataUpdated","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPrDataUpdatedMeta","title":"CognitionAcp.CognitionPrDataUpdatedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPromptRequestMeta","title":"CognitionAcp.CognitionPromptRequestMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionPromptResponseMeta","title":"CognitionAcp.CognitionPromptResponseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionReadFileCall","title":"CognitionAcp.CognitionReadFileCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionRecordingStoppedCall","title":"CognitionAcp.CognitionRecordingStoppedCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionRecordingStoppedMeta","title":"CognitionAcp.CognitionRecordingStoppedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionRepoProject","title":"CognitionAcp.CognitionRepoProject","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionReportBlockerCall","title":"CognitionAcp.CognitionReportBlockerCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionRepoSetupSteps","title":"CognitionAcp.CognitionRepoSetupSteps","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionResourceLink","title":"CognitionAcp.CognitionResourceLink","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionRulesInjectedCall","title":"CognitionAcp.CognitionRulesInjectedCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSelectOptionMeta","title":"CognitionAcp.CognitionSelectOptionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionAnalysisMeta","title":"CognitionAcp.CognitionSessionAnalysisMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionMeta","title":"CognitionAcp.CognitionSessionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionRecap","title":"CognitionAcp.CognitionSessionRecap","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionRecapMeta","title":"CognitionAcp.CognitionSessionRecapMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionSegment","title":"CognitionAcp.CognitionSessionSegment","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionSegmentationData","title":"CognitionAcp.CognitionSessionSegmentationData","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionSegmentationMeta","title":"CognitionAcp.CognitionSessionSegmentationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionStateEventMeta","title":"CognitionAcp.CognitionSessionStateEventMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSessionUpdateMeta","title":"CognitionAcp.CognitionSessionUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSetConfigOptionRequestMeta","title":"CognitionAcp.CognitionSetConfigOptionRequestMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSetupObservationMeta","title":"CognitionAcp.CognitionSetupObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSetupStepsUpdatedMeta","title":"CognitionAcp.CognitionSetupStepsUpdatedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSetupStepsUpdatedPartialMeta","title":"CognitionAcp.CognitionSetupStepsUpdatedPartialMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionShowContentWithExternalLinksCall","title":"CognitionAcp.CognitionShowContentWithExternalLinksCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSkillsInsightsMeta","title":"CognitionAcp.CognitionSkillsInsightsMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionSpeedUpdateMeta","title":"CognitionAcp.CognitionSpeedUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStatusCheckObservationMeta","title":"CognitionAcp.CognitionStatusCheckObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStatusUpdateMeta","title":"CognitionAcp.CognitionStatusUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStructuredIoPlaybook","title":"CognitionAcp.CognitionStructuredIoPlaybook","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStructuredIoUpdateMeta","title":"CognitionAcp.CognitionStructuredIoUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStructuredIoValue","title":"CognitionAcp.CognitionStructuredIoValue","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStructuredOutputUpdateMeta","title":"CognitionAcp.CognitionStructuredOutputUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionStructuredOutputValue","title":"CognitionAcp.CognitionStructuredOutputValue","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTaskTrackerMeta","title":"CognitionAcp.CognitionTaskTrackerMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTerminalCloseMeta","title":"CognitionAcp.CognitionTerminalCloseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTerminalObservationMeta","title":"CognitionAcp.CognitionTerminalObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTextContent","title":"CognitionAcp.CognitionTextContent","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTextResourceContents","title":"CognitionAcp.CognitionTextResourceContents","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionThoughtUpdateMeta","title":"CognitionAcp.CognitionThoughtUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTimelineObservationMeta","title":"CognitionAcp.CognitionTimelineObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTodoEntry","title":"CognitionAcp.CognitionTodoEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTodoEntryMeta","title":"CognitionAcp.CognitionTodoEntryMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTodoUpdateMeta","title":"CognitionAcp.CognitionTodoUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionToolAggregate","title":"CognitionAcp.CognitionToolAggregate","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionToolCall","title":"CognitionAcp.CognitionToolCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionTypingUpdateMeta","title":"CognitionAcp.CognitionTypingUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CognitionUserInputObservationMeta","title":"CognitionAcp.CognitionUserInputObservationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CommandIdentifier","title":"CognitionAcp.CommandIdentifier","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CommandReviseParams","title":"CognitionAcp.CommandReviseParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CommandReviseResponse","title":"CognitionAcp.CommandReviseResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CommitStatusDetails","title":"CognitionAcp.CommitStatusDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CompletedTimestampMeta","title":"CognitionAcp.CompletedTimestampMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ComputerUseDetails","title":"CognitionAcp.ComputerUseDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ContentChunkMeta","title":"CognitionAcp.ContentChunkMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ContentChunkSender","title":"CognitionAcp.ContentChunkSender","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ContextSection","title":"CognitionAcp.ContextSection","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ContextSectionKind","title":"CognitionAcp.ContextSectionKind","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ContextUsage","title":"CognitionAcp.ContextUsage","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ConversationExport","title":"CognitionAcp.ConversationExport","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ConversationExportFailure","title":"CognitionAcp.ConversationExportFailure","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CreatedSessionEntry","title":"CognitionAcp.CreatedSessionEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/CustomizationScope","title":"CognitionAcp.CustomizationScope","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DeployApproveParams","title":"CognitionAcp.DeployApproveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DevinMode","title":"CognitionAcp.DevinMode","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DevinSuspendedMeta","title":"CognitionAcp.DevinSuspendedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DevinToolCall","title":"CognitionAcp.DevinToolCall","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DevinToolCallFunction","title":"CognitionAcp.DevinToolCallFunction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DiffStats","title":"CognitionAcp.DiffStats","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DocumentDidChangeDirtyParams","title":"CognitionAcp.DocumentDidChangeDirtyParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DocumentDidCloseParams","title":"CognitionAcp.DocumentDidCloseParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DocumentDidFocusParams","title":"CognitionAcp.DocumentDidFocusParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DocumentDidOpenParams","title":"CognitionAcp.DocumentDidOpenParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/DocumentInfo","title":"CognitionAcp.DocumentInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EditFileInput","title":"CognitionAcp.EditFileInput","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EditorContext","title":"CognitionAcp.EditorContext","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EditorUpdateDetails","title":"CognitionAcp.EditorUpdateDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EnvironmentConfigSuggestionMeta","title":"CognitionAcp.EnvironmentConfigSuggestionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EnvironmentSuggestionAcceptParams","title":"CognitionAcp.EnvironmentSuggestionAcceptParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EnvironmentSuggestionAcceptResponse","title":"CognitionAcp.EnvironmentSuggestionAcceptResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EnvironmentSuggestionDismissParams","title":"CognitionAcp.EnvironmentSuggestionDismissParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EnvironmentSuggestionSink","title":"CognitionAcp.EnvironmentSuggestionSink","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EnvironmentSuggestionTarget","title":"CognitionAcp.EnvironmentSuggestionTarget","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralKey","title":"CognitionAcp.EphemeralKey","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralPresenceNotification","title":"CognitionAcp.EphemeralPresenceNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralPublishParams","title":"CognitionAcp.EphemeralPublishParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralPublishResponse","title":"CognitionAcp.EphemeralPublishResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralSubscribeParams","title":"CognitionAcp.EphemeralSubscribeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralSubscribeResponse","title":"CognitionAcp.EphemeralSubscribeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralUnsubscribeParams","title":"CognitionAcp.EphemeralUnsubscribeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralUnsubscribeResponse","title":"CognitionAcp.EphemeralUnsubscribeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralUpdateNotification","title":"CognitionAcp.EphemeralUpdateNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralValue","title":"CognitionAcp.EphemeralValue","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EphemeralViewer","title":"CognitionAcp.EphemeralViewer","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/EventIdResponse","title":"CognitionAcp.EventIdResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ExecTimeoutMeta","title":"CognitionAcp.ExecTimeoutMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ExecuteInput","title":"CognitionAcp.ExecuteInput","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ExitPlanMeta","title":"CognitionAcp.ExitPlanMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ExploreToolActionMeta","title":"CognitionAcp.ExploreToolActionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ExternalHistorySkeletonSupportMeta","title":"CognitionAcp.ExternalHistorySkeletonSupportMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ExternalSessionMetaSupportMeta","title":"CognitionAcp.ExternalSessionMetaSupportMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FileConflictPayload","title":"CognitionAcp.FileConflictPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FileRevertActionPayload","title":"CognitionAcp.FileRevertActionPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FileRevertKindPayload","title":"CognitionAcp.FileRevertKindPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FileSearchCategoryType","title":"CognitionAcp.FileSearchCategoryType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FileSearchInput","title":"CognitionAcp.FileSearchInput","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FileSearchResult","title":"CognitionAcp.FileSearchResult","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FirstSessionMeta","title":"CognitionAcp.FirstSessionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderCreateParams","title":"CognitionAcp.FolderCreateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderCreateResponse","title":"CognitionAcp.FolderCreateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderDeleteParams","title":"CognitionAcp.FolderDeleteParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderDeleteResponse","title":"CognitionAcp.FolderDeleteResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderListParams","title":"CognitionAcp.FolderListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderListResponse","title":"CognitionAcp.FolderListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderMutationResponseMeta","title":"CognitionAcp.FolderMutationResponseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderRenameParams","title":"CognitionAcp.FolderRenameParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderRenameResponse","title":"CognitionAcp.FolderRenameResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderReorderParams","title":"CognitionAcp.FolderReorderParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FolderReorderResponse","title":"CognitionAcp.FolderReorderResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FusionPricing","title":"CognitionAcp.FusionPricing","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/FusionUsage","title":"CognitionAcp.FusionUsage","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/GitStackIncomingMeta","title":"CognitionAcp.GitStackIncomingMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/GuardrailMeta","title":"CognitionAcp.GuardrailMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/GuardrailState","title":"CognitionAcp.GuardrailState","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HandoffRequestedMeta","title":"CognitionAcp.HandoffRequestedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HandoffResolveAction","title":"CognitionAcp.HandoffResolveAction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HandoffResolveParams","title":"CognitionAcp.HandoffResolveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HistorySkeletonAnchor","title":"CognitionAcp.HistorySkeletonAnchor","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HistorySourceRange","title":"CognitionAcp.HistorySourceRange","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HookCompletedMeta","title":"CognitionAcp.HookCompletedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HookFormatKind","title":"CognitionAcp.HookFormatKind","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HookMigrationResult","title":"CognitionAcp.HookMigrationResult","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HooksListParams","title":"CognitionAcp.HooksListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HooksListResponse","title":"CognitionAcp.HooksListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HooksMigrateListResponse","title":"CognitionAcp.HooksMigrateListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HooksMigrateParams","title":"CognitionAcp.HooksMigrateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HooksMigrateResponse","title":"CognitionAcp.HooksMigrateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/HookStartedMeta","title":"CognitionAcp.HookStartedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/IgnoredBotComment","title":"CognitionAcp.IgnoredBotComment","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/InitializeResponseMeta","title":"CognitionAcp.InitializeResponseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/InitiatorLink","title":"CognitionAcp.InitiatorLink","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/InteractiveBrowserGetParams","title":"CognitionAcp.InteractiveBrowserGetParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/InteractiveBrowserGetResponse","title":"CognitionAcp.InteractiveBrowserGetResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/IrreversibleWarningPayload","title":"CognitionAcp.IrreversibleWarningPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/KillTerminalMeta","title":"CognitionAcp.KillTerminalMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/KnowledgeNoteMeta","title":"CognitionAcp.KnowledgeNoteMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/KnowledgeUpdateSuggestionMeta","title":"CognitionAcp.KnowledgeUpdateSuggestionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LicenseStatusInfo","title":"CognitionAcp.LicenseStatusInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ListDirectoryInput","title":"CognitionAcp.ListDirectoryInput","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ListDirectoryMeta","title":"CognitionAcp.ListDirectoryMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LoadedHookInfo","title":"CognitionAcp.LoadedHookInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LoadPayloadBreakdown","title":"CognitionAcp.LoadPayloadBreakdown","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LoadReplayFrom","title":"CognitionAcp.LoadReplayFrom","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LoadStartingNotification","title":"CognitionAcp.LoadStartingNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LoadStatsNotification","title":"CognitionAcp.LoadStatsNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalAccessRequestedMeta","title":"CognitionAcp.LocalAccessRequestedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalModelInfo","title":"CognitionAcp.LocalModelInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsApprovalMode","title":"CognitionAcp.LocalToolsApprovalMode","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsApprovalModeParams","title":"CognitionAcp.LocalToolsApprovalModeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsApprovalModeResponse","title":"CognitionAcp.LocalToolsApprovalModeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsConnectParams","title":"CognitionAcp.LocalToolsConnectParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsConnectResponse","title":"CognitionAcp.LocalToolsConnectResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsConnectStatus","title":"CognitionAcp.LocalToolsConnectStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsDisconnectParams","title":"CognitionAcp.LocalToolsDisconnectParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsDisconnectResponse","title":"CognitionAcp.LocalToolsDisconnectResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsRetryParams","title":"CognitionAcp.LocalToolsRetryParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsRetryResponse","title":"CognitionAcp.LocalToolsRetryResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsStatusParams","title":"CognitionAcp.LocalToolsStatusParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/LocalToolsStatusResponse","title":"CognitionAcp.LocalToolsStatusResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpConnectionStatus","title":"CognitionAcp.McpConnectionStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpConnectServerParams","title":"CognitionAcp.McpConnectServerParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpConnectServerResponse","title":"CognitionAcp.McpConnectServerResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpDisconnectServerParams","title":"CognitionAcp.McpDisconnectServerParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpDisconnectServerResponse","title":"CognitionAcp.McpDisconnectServerResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpInstallServerParams","title":"CognitionAcp.McpInstallServerParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpInstallServerResponse","title":"CognitionAcp.McpInstallServerResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpListServersParams","title":"CognitionAcp.McpListServersParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpListServersResponse","title":"CognitionAcp.McpListServersResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpListToolsParams","title":"CognitionAcp.McpListToolsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpListToolsResponse","title":"CognitionAcp.McpListToolsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpOAuthAuthorizeParams","title":"CognitionAcp.McpOAuthAuthorizeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpOAuthAuthorizeResponse","title":"CognitionAcp.McpOAuthAuthorizeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpRemoveServerParams","title":"CognitionAcp.McpRemoveServerParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpRemoveServerResponse","title":"CognitionAcp.McpRemoveServerResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpResourceInfo","title":"CognitionAcp.McpResourceInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpServerInfo","title":"CognitionAcp.McpServerInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpServerMeta","title":"CognitionAcp.McpServerMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpToggleServerParams","title":"CognitionAcp.McpToggleServerParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpToggleServerResponse","title":"CognitionAcp.McpToggleServerResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpToggleToolParams","title":"CognitionAcp.McpToggleToolParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpToggleToolResponse","title":"CognitionAcp.McpToggleToolResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpToolInfo","title":"CognitionAcp.McpToolInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/McpTransport","title":"CognitionAcp.McpTransport","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/MemoryDriveReaction","title":"CognitionAcp.MemoryDriveReaction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/MemoryDriveReactParams","title":"CognitionAcp.MemoryDriveReactParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/MemoryDriveReactResponse","title":"CognitionAcp.MemoryDriveReactResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/MemoryDriveRevertParams","title":"CognitionAcp.MemoryDriveRevertParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/MentionTypeInfo","title":"CognitionAcp.MentionTypeInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/MetadataStatus","title":"CognitionAcp.MetadataStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModalSeverity","title":"CognitionAcp.ModalSeverity","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsFileDiagnosticInfo","title":"CognitionAcp.ModelsFileDiagnosticInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsReadParams","title":"CognitionAcp.ModelsReadParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsReadResponse","title":"CognitionAcp.ModelsReadResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsTestParams","title":"CognitionAcp.ModelsTestParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsTestResponse","title":"CognitionAcp.ModelsTestResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsValidateParams","title":"CognitionAcp.ModelsValidateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsValidateResponse","title":"CognitionAcp.ModelsValidateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsWriteParams","title":"CognitionAcp.ModelsWriteParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ModelsWriteResponse","title":"CognitionAcp.ModelsWriteResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicy","title":"CognitionAcp.NetPolicy","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyAllowInProfileParams","title":"CognitionAcp.NetPolicyAllowInProfileParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyAllowInProfileResponse","title":"CognitionAcp.NetPolicyAllowInProfileResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyDestination","title":"CognitionAcp.NetPolicyDestination","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyGetParams","title":"CognitionAcp.NetPolicyGetParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyGetResponse","title":"CognitionAcp.NetPolicyGetResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyUpdateParams","title":"CognitionAcp.NetPolicyUpdateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetPolicyUpdateResponse","title":"CognitionAcp.NetPolicyUpdateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NetworkAccessRequestMeta","title":"CognitionAcp.NetworkAccessRequestMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationAction","title":"CognitionAcp.NotificationAction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationAuthoredContent","title":"CognitionAcp.NotificationAuthoredContent","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationContent","title":"CognitionAcp.NotificationContent","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationCopy","title":"CognitionAcp.NotificationCopy","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationDestination","title":"CognitionAcp.NotificationDestination","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationDetails","title":"CognitionAcp.NotificationDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationEntity","title":"CognitionAcp.NotificationEntity","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationItem","title":"CognitionAcp.NotificationItem","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationLeading","title":"CognitionAcp.NotificationLeading","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationQueue","title":"CognitionAcp.NotificationQueue","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationResolution","title":"CognitionAcp.NotificationResolution","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsActParams","title":"CognitionAcp.NotificationsActParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsActResponse","title":"CognitionAcp.NotificationsActResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsChangedNotification","title":"CognitionAcp.NotificationsChangedNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsDismissParams","title":"CognitionAcp.NotificationsDismissParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsDismissResponse","title":"CognitionAcp.NotificationsDismissResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationSettingsSection","title":"CognitionAcp.NotificationSettingsSection","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsListFilter","title":"CognitionAcp.NotificationsListFilter","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsListParams","title":"CognitionAcp.NotificationsListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsListResponse","title":"CognitionAcp.NotificationsListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsMarkReadParams","title":"CognitionAcp.NotificationsMarkReadParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsMarkReadResponse","title":"CognitionAcp.NotificationsMarkReadResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsPostParams","title":"CognitionAcp.NotificationsPostParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsPostResponse","title":"CognitionAcp.NotificationsPostResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsQueuesParams","title":"CognitionAcp.NotificationsQueuesParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsQueuesResponse","title":"CognitionAcp.NotificationsQueuesResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationsReadFilter","title":"CognitionAcp.NotificationsReadFilter","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationStatus","title":"CognitionAcp.NotificationStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationText","title":"CognitionAcp.NotificationText","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationTextSegment","title":"CognitionAcp.NotificationTextSegment","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NotificationTypeKey","title":"CognitionAcp.NotificationTypeKey","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NullableI64","title":"CognitionAcp.NullableI64","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/NullableString","title":"CognitionAcp.NullableString","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/OutputChannelNotification","title":"CognitionAcp.OutputChannelNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/OutputLevel","title":"CognitionAcp.OutputLevel","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PageInfo","title":"CognitionAcp.PageInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PaginationInfo","title":"CognitionAcp.PaginationInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PermissionRespondParams","title":"CognitionAcp.PermissionRespondParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PermissionRespondResponse","title":"CognitionAcp.PermissionRespondResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanAcceptParams","title":"CognitionAcp.PlanAcceptParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanAcceptResponse","title":"CognitionAcp.PlanAcceptResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanEditParams","title":"CognitionAcp.PlanEditParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanEditResponse","title":"CognitionAcp.PlanEditResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanFileInfo","title":"CognitionAcp.PlanFileInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlansListParams","title":"CognitionAcp.PlansListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlansListResponse","title":"CognitionAcp.PlansListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanToggleConfirmModeParams","title":"CognitionAcp.PlanToggleConfirmModeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlanToggleConfirmModeResponse","title":"CognitionAcp.PlanToggleConfirmModeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlaybookEventMeta","title":"CognitionAcp.PlaybookEventMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlaybookExample","title":"CognitionAcp.PlaybookExample","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlaybookRef","title":"CognitionAcp.PlaybookRef","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlaybookRetrievedActivity","title":"CognitionAcp.PlaybookRetrievedActivity","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlaybookUpdateActivity","title":"CognitionAcp.PlaybookUpdateActivity","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PlaybookUserRef","title":"CognitionAcp.PlaybookUserRef","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginAssets","title":"CognitionAcp.PluginAssets","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginBlocker","title":"CognitionAcp.PluginBlocker","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginBundleScope","title":"CognitionAcp.PluginBundleScope","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginCloudFallbackReason","title":"CognitionAcp.PluginCloudFallbackReason","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginErrorKind","title":"CognitionAcp.PluginErrorKind","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginHookInfo","title":"CognitionAcp.PluginHookInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginInfo","title":"CognitionAcp.PluginInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginInstallDestination","title":"CognitionAcp.PluginInstallDestination","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginIssue","title":"CognitionAcp.PluginIssue","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginListFilter","title":"CognitionAcp.PluginListFilter","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginMcpServerInfo","title":"CognitionAcp.PluginMcpServerInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginOrigin","title":"CognitionAcp.PluginOrigin","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginOriginSource","title":"CognitionAcp.PluginOriginSource","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginRuleInfo","title":"CognitionAcp.PluginRuleInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsAssetsParams","title":"CognitionAcp.PluginsAssetsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsAssetsResponse","title":"CognitionAcp.PluginsAssetsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsChangedNotification","title":"CognitionAcp.PluginsChangedNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginScopeParams","title":"CognitionAcp.PluginScopeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsInstallParams","title":"CognitionAcp.PluginsInstallParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsInstallResponse","title":"CognitionAcp.PluginsInstallResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginSkill","title":"CognitionAcp.PluginSkill","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginSkillInfo","title":"CognitionAcp.PluginSkillInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginSkillSource","title":"CognitionAcp.PluginSkillSource","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsListParams","title":"CognitionAcp.PluginsListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsListResponse","title":"CognitionAcp.PluginsListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginSourceInfo","title":"CognitionAcp.PluginSourceInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsRefreshParams","title":"CognitionAcp.PluginsRefreshParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsRefreshResponse","title":"CognitionAcp.PluginsRefreshResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsRemoveParams","title":"CognitionAcp.PluginsRemoveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginsRemoveResponse","title":"CognitionAcp.PluginsRemoveResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginState","title":"CognitionAcp.PluginState","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PluginTier","title":"CognitionAcp.PluginTier","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrAutoMergeInfo","title":"CognitionAcp.PrAutoMergeInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrCloseMeta","title":"CognitionAcp.PrCloseMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrCloseParams","title":"CognitionAcp.PrCloseParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrCloseResponse","title":"CognitionAcp.PrCloseResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrCommentDetails","title":"CognitionAcp.PrCommentDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrConflictDetails","title":"CognitionAcp.PrConflictDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrMergeMethod","title":"CognitionAcp.PrMergeMethod","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrMergeParams","title":"CognitionAcp.PrMergeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrMergeQueueInfo","title":"CognitionAcp.PrMergeQueueInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrMergeResponse","title":"CognitionAcp.PrMergeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrMergeStatusParams","title":"CognitionAcp.PrMergeStatusParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrMergeStatusResponse","title":"CognitionAcp.PrMergeStatusResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProcessIdMeta","title":"CognitionAcp.ProcessIdMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProcessMemoryNotification","title":"CognitionAcp.ProcessMemoryNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProcessMemoryPhase","title":"CognitionAcp.ProcessMemoryPhase","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressCheckRun","title":"CognitionAcp.ProgressCheckRun","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressCommentChanges","title":"CognitionAcp.ProgressCommentChanges","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressCommentContext","title":"CognitionAcp.ProgressCommentContext","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressCommitStatus","title":"CognitionAcp.ProgressCommitStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressNote","title":"CognitionAcp.ProgressNote","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressNoteType","title":"CognitionAcp.ProgressNoteType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressPlaybookData","title":"CognitionAcp.ProgressPlaybookData","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressPrComment","title":"CognitionAcp.ProgressPrComment","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressPullRequest","title":"CognitionAcp.ProgressPullRequest","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ProgressWorkspaceAction","title":"CognitionAcp.ProgressWorkspaceAction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PromptHistoryEntry","title":"CognitionAcp.PromptHistoryEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PromptHistoryReadParams","title":"CognitionAcp.PromptHistoryReadParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PromptHistoryReadResponse","title":"CognitionAcp.PromptHistoryReadResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrRepositoryMergeSettings","title":"CognitionAcp.PrRepositoryMergeSettings","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewFindingCounts","title":"CognitionAcp.PrReviewFindingCounts","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobParams","title":"CognitionAcp.PrReviewJobParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobResponse","title":"CognitionAcp.PrReviewJobResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobResultStatus","title":"CognitionAcp.PrReviewJobResultStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobsParams","title":"CognitionAcp.PrReviewJobsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobsResponse","title":"CognitionAcp.PrReviewJobsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobStatus","title":"CognitionAcp.PrReviewJobStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobSummary","title":"CognitionAcp.PrReviewJobSummary","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobType","title":"CognitionAcp.PrReviewJobType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobVersion","title":"CognitionAcp.PrReviewJobVersion","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrReviewJobVersionStatus","title":"CognitionAcp.PrReviewJobVersionStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/PrStackedMeta","title":"CognitionAcp.PrStackedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QueuedMessageInput","title":"CognitionAcp.QueuedMessageInput","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QueuedMessagesUpdateParams","title":"CognitionAcp.QueuedMessagesUpdateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QueuedMessagesUpdateResponse","title":"CognitionAcp.QueuedMessagesUpdateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/Quote","title":"CognitionAcp.Quote","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteAccessibility","title":"CognitionAcp.QuoteAccessibility","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteAccessibilityDiscovery","title":"CognitionAcp.QuoteAccessibilityDiscovery","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteAnchor","title":"CognitionAcp.QuoteAnchor","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteArtifact","title":"CognitionAcp.QuoteArtifact","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteAttachmentView","title":"CognitionAcp.QuoteAttachmentView","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteAuthor","title":"CognitionAcp.QuoteAuthor","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuotedArtifact","title":"CognitionAcp.QuotedArtifact","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteDiffSide","title":"CognitionAcp.QuoteDiffSide","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteScreenshot","title":"CognitionAcp.QuoteScreenshot","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteSource","title":"CognitionAcp.QuoteSource","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteSurface","title":"CognitionAcp.QuoteSurface","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/QuoteWorklogView","title":"CognitionAcp.QuoteWorklogView","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReadFileInput","title":"CognitionAcp.ReadFileInput","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReadFileLocationMeta","title":"CognitionAcp.ReadFileLocationMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RecentModelUidsReadParams","title":"CognitionAcp.RecentModelUidsReadParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RecentModelUidsReadResponse","title":"CognitionAcp.RecentModelUidsReadResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RecentTerminalCommand","title":"CognitionAcp.RecentTerminalCommand","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReplayBatchSupportMeta","title":"CognitionAcp.ReplayBatchSupportMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoCommand","title":"CognitionAcp.RepoCommand","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoCommandStatus","title":"CognitionAcp.RepoCommandStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoCommandType","title":"CognitionAcp.RepoCommandType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoIndexDecideParams","title":"CognitionAcp.RepoIndexDecideParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoIndexDecideResponse","title":"CognitionAcp.RepoIndexDecideResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoIndexDecideResult","title":"CognitionAcp.RepoIndexDecideResult","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoIndexDecision","title":"CognitionAcp.RepoIndexDecision","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RepoIndexResultStatus","title":"CognitionAcp.RepoIndexResultStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReportBlockerMeta","title":"CognitionAcp.ReportBlockerMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReposListParams","title":"CognitionAcp.ReposListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReposListRepoItem","title":"CognitionAcp.ReposListRepoItem","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ReposListResponse","title":"CognitionAcp.ReposListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RequestSecretMeta","title":"CognitionAcp.RequestSecretMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RequestUsage","title":"CognitionAcp.RequestUsage","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ResolvedBlueprintInfo","title":"CognitionAcp.ResolvedBlueprintInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ResourceContentMeta","title":"CognitionAcp.ResourceContentMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ResponseDimensionKindPayload","title":"CognitionAcp.ResponseDimensionKindPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ResponseDimensionPayload","title":"CognitionAcp.ResponseDimensionPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertExecuteParams","title":"CognitionAcp.RevertExecuteParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertExecuteResponse","title":"CognitionAcp.RevertExecuteResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertForkFromStepParams","title":"CognitionAcp.RevertForkFromStepParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertForkFromStepResponse","title":"CognitionAcp.RevertForkFromStepResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertHistoryRewoundNotification","title":"CognitionAcp.RevertHistoryRewoundNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertListStepsParams","title":"CognitionAcp.RevertListStepsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertListStepsResponse","title":"CognitionAcp.RevertListStepsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertPreviewParams","title":"CognitionAcp.RevertPreviewParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertPreviewResponse","title":"CognitionAcp.RevertPreviewResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertResumeParams","title":"CognitionAcp.RevertResumeParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertResumeResponse","title":"CognitionAcp.RevertResumeResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertStepInfo","title":"CognitionAcp.RevertStepInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertStepKind","title":"CognitionAcp.RevertStepKind","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertStepsUpdatedNotification","title":"CognitionAcp.RevertStepsUpdatedNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertTarget","title":"CognitionAcp.RevertTarget","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RevertUndoOutcomePayload","title":"CognitionAcp.RevertUndoOutcomePayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RichContentNode","title":"CognitionAcp.RichContentNode","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RichContentTaggedNode","title":"CognitionAcp.RichContentTaggedNode","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RichContentTextNode","title":"CognitionAcp.RichContentTextNode","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RowIdEventsPageRequest","title":"CognitionAcp.RowIdEventsPageRequest","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RowIdEventsPageResponse","title":"CognitionAcp.RowIdEventsPageResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RowIdResumeReplayMeta","title":"CognitionAcp.RowIdResumeReplayMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RuleInfo","title":"CognitionAcp.RuleInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RulesInjectedMeta","title":"CognitionAcp.RulesInjectedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RulesListParams","title":"CognitionAcp.RulesListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RulesListResponse","title":"CognitionAcp.RulesListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/RuleTrigger","title":"CognitionAcp.RuleTrigger","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ScratchpadAction","title":"CognitionAcp.ScratchpadAction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretCreateParams","title":"CognitionAcp.SecretCreateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretCreateResponse","title":"CognitionAcp.SecretCreateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretEntry","title":"CognitionAcp.SecretEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretListEntry","title":"CognitionAcp.SecretListEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretListParams","title":"CognitionAcp.SecretListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretListResponse","title":"CognitionAcp.SecretListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretPersistScope","title":"CognitionAcp.SecretPersistScope","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretProvideParams","title":"CognitionAcp.SecretProvideParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretProvideResponse","title":"CognitionAcp.SecretProvideResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretSaveAction","title":"CognitionAcp.SecretSaveAction","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretSaveParams","title":"CognitionAcp.SecretSaveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretSaveResponse","title":"CognitionAcp.SecretSaveResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretSaveScope","title":"CognitionAcp.SecretSaveScope","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SecretType","title":"CognitionAcp.SecretType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SendSecretMeta","title":"CognitionAcp.SendSecretMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SentSecretEntry","title":"CognitionAcp.SentSecretEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionAssignee","title":"CognitionAcp.SessionAssignee","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionEndParams","title":"CognitionAcp.SessionEndParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionEndResponse","title":"CognitionAcp.SessionEndResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionExportFormat","title":"CognitionAcp.SessionExportFormat","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionExportParams","title":"CognitionAcp.SessionExportParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionExportResponse","title":"CognitionAcp.SessionExportResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionFeedbackParams","title":"CognitionAcp.SessionFeedbackParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionFeedbackResponse","title":"CognitionAcp.SessionFeedbackResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionFeedbackSentiment","title":"CognitionAcp.SessionFeedbackSentiment","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionGroupWindow","title":"CognitionAcp.SessionGroupWindow","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionHeartbeatParams","title":"CognitionAcp.SessionHeartbeatParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionHeartbeatResponse","title":"CognitionAcp.SessionHeartbeatResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionListAutomationFilter","title":"CognitionAcp.SessionListAutomationFilter","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionListOrderBy","title":"CognitionAcp.SessionListOrderBy","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionListSortDirection","title":"CognitionAcp.SessionListSortDirection","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionMarkReadParams","title":"CognitionAcp.SessionMarkReadParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionMoveToFolderParams","title":"CognitionAcp.SessionMoveToFolderParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionMoveToFolderResponse","title":"CognitionAcp.SessionMoveToFolderResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionPendingRequest","title":"CognitionAcp.SessionPendingRequest","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionPinParams","title":"CognitionAcp.SessionPinParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionPinResponse","title":"CognitionAcp.SessionPinResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionPr","title":"CognitionAcp.SessionPr","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRebootParams","title":"CognitionAcp.SessionRebootParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRebootResponse","title":"CognitionAcp.SessionRebootResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRemoveFromFolderParams","title":"CognitionAcp.SessionRemoveFromFolderParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRemoveFromFolderResponse","title":"CognitionAcp.SessionRemoveFromFolderResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRenameParams","title":"CognitionAcp.SessionRenameParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRenameResponse","title":"CognitionAcp.SessionRenameResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionRepo","title":"CognitionAcp.SessionRepo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionsBulkArchiveClosedPr","title":"CognitionAcp.SessionsBulkArchiveClosedPr","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionsBulkArchiveParams","title":"CognitionAcp.SessionsBulkArchiveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionsBulkArchiveResponse","title":"CognitionAcp.SessionsBulkArchiveResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionSetTagsParams","title":"CognitionAcp.SessionSetTagsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionShareParams","title":"CognitionAcp.SessionShareParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionShareResponse","title":"CognitionAcp.SessionShareResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionSpendingLimitSetParams","title":"CognitionAcp.SessionSpendingLimitSetParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionSpendingLimitSetResponse","title":"CognitionAcp.SessionSpendingLimitSetResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionStatsMeta","title":"CognitionAcp.SessionStatsMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionStopParams","title":"CognitionAcp.SessionStopParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionSuggestionEntry","title":"CognitionAcp.SessionSuggestionEntry","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionSuggestionMeta","title":"CognitionAcp.SessionSuggestionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionUpdateBatchNotification","title":"CognitionAcp.SessionUpdateBatchNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SessionWorkflowRun","title":"CognitionAcp.SessionWorkflowRun","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SetupStepsSuggestChangesParams","title":"CognitionAcp.SetupStepsSuggestChangesParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SetupStepUpdate","title":"CognitionAcp.SetupStepUpdate","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SetVoiceModeMeta","title":"CognitionAcp.SetVoiceModeMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ShellIdMeta","title":"CognitionAcp.ShellIdMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ShellProcessMeta","title":"CognitionAcp.ShellProcessMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ShellStartupDetails","title":"CognitionAcp.ShellStartupDetails","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ShowContentWithExternalLinksMeta","title":"CognitionAcp.ShowContentWithExternalLinksMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ShowModalNotification","title":"CognitionAcp.ShowModalNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainCancelParams","title":"CognitionAcp.SidechainCancelParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainCancelResponse","title":"CognitionAcp.SidechainCancelResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainRequestParams","title":"CognitionAcp.SidechainRequestParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainRequestResponse","title":"CognitionAcp.SidechainRequestResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainRowRole","title":"CognitionAcp.SidechainRowRole","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainsSupportMeta","title":"CognitionAcp.SidechainsSupportMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SidechainThreadMeta","title":"CognitionAcp.SidechainThreadMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillInfo","title":"CognitionAcp.SkillInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillPrSuggestionMeta","title":"CognitionAcp.SkillPrSuggestionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillsListParams","title":"CognitionAcp.SkillsListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillsListResponse","title":"CognitionAcp.SkillsListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillSuggestionAcceptParams","title":"CognitionAcp.SkillSuggestionAcceptParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillSuggestionAcceptResponse","title":"CognitionAcp.SkillSuggestionAcceptResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillSuggestionFile","title":"CognitionAcp.SkillSuggestionFile","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SkillTrigger","title":"CognitionAcp.SkillTrigger","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SlackSyncUpdateParams","title":"CognitionAcp.SlackSyncUpdateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotBuildWarningMeta","title":"CognitionAcp.SnapshotBuildWarningMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupCreateBlueprintParams","title":"CognitionAcp.SnapshotSetupCreateBlueprintParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupGetBuildJobParams","title":"CognitionAcp.SnapshotSetupGetBuildJobParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupListBlueprintsParams","title":"CognitionAcp.SnapshotSetupListBlueprintsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupListBlueprintsResponse","title":"CognitionAcp.SnapshotSetupListBlueprintsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupPinBuildParams","title":"CognitionAcp.SnapshotSetupPinBuildParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupPinBuildResponse","title":"CognitionAcp.SnapshotSetupPinBuildResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupTriggerBuildParams","title":"CognitionAcp.SnapshotSetupTriggerBuildParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupUpdateBlueprintContentsParams","title":"CognitionAcp.SnapshotSetupUpdateBlueprintContentsParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SnapshotSetupUpdateBlueprintContentsResponse","title":"CognitionAcp.SnapshotSetupUpdateBlueprintContentsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SpineEventsRequest","title":"CognitionAcp.SpineEventsRequest","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SpineEventsResponse","title":"CognitionAcp.SpineEventsResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SsoStatusInfo","title":"CognitionAcp.SsoStatusInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/StartupCommandErrorMeta","title":"CognitionAcp.StartupCommandErrorMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/StatelessShellReplaySupportMeta","title":"CognitionAcp.StatelessShellReplaySupportMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/StopReason","title":"CognitionAcp.StopReason","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SubagentControlParams","title":"CognitionAcp.SubagentControlParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SubagentInfo","title":"CognitionAcp.SubagentInfo","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SubagentsListParams","title":"CognitionAcp.SubagentsListParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SubagentsListResponse","title":"CognitionAcp.SubagentsListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SuggestionCompletionMeta","title":"CognitionAcp.SuggestionCompletionMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/SuggestSaveSecretMeta","title":"CognitionAcp.SuggestSaveSecretMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TeamsSyncUpdateParams","title":"CognitionAcp.TeamsSyncUpdateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalCommandCompletedParams","title":"CognitionAcp.TerminalCommandCompletedParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalCommandContext","title":"CognitionAcp.TerminalCommandContext","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalCommandNamesMeta","title":"CognitionAcp.TerminalCommandNamesMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalCommandStartedParams","title":"CognitionAcp.TerminalCommandStartedParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalCwdMeta","title":"CognitionAcp.TerminalCwdMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalExitMeta","title":"CognitionAcp.TerminalExitMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalExitStatus","title":"CognitionAcp.TerminalExitStatus","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalKillBackgroundShellParams","title":"CognitionAcp.TerminalKillBackgroundShellParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TerminalKillBackgroundShellResponse","title":"CognitionAcp.TerminalKillBackgroundShellResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TestAppApproveParams","title":"CognitionAcp.TestAppApproveParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TextContentMeta","title":"CognitionAcp.TextContentMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TokenPrices","title":"CognitionAcp.TokenPrices","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TokenUsage","title":"CognitionAcp.TokenUsage","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ToolCallCanceledMeta","title":"CognitionAcp.ToolCallCanceledMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ToolCallFields","title":"CognitionAcp.ToolCallFields","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/ToolCallRejectedMeta","title":"CognitionAcp.ToolCallRejectedMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TurnStatsNotification","title":"CognitionAcp.TurnStatsNotification","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/TurnStatsPayload","title":"CognitionAcp.TurnStatsPayload","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserActivityReport","title":"CognitionAcp.UserActivityReport","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserEditedFile","title":"CognitionAcp.UserEditedFile","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserEditKind","title":"CognitionAcp.UserEditKind","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserEventResponse","title":"CognitionAcp.UserEventResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserInputBoundaryMeta","title":"CognitionAcp.UserInputBoundaryMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserInteractionType","title":"CognitionAcp.UserInteractionType","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserQuestionAnswerItem","title":"CognitionAcp.UserQuestionAnswerItem","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserQuestionAnswersMeta","title":"CognitionAcp.UserQuestionAnswersMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserQuestionItemMeta","title":"CognitionAcp.UserQuestionItemMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserQuestionsMeta","title":"CognitionAcp.UserQuestionsMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/UserTerminalCommand","title":"CognitionAcp.UserTerminalCommand","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WdwToolActivity","title":"CognitionAcp.WdwToolActivity","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WebSearchMeta","title":"CognitionAcp.WebSearchMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WholeUserMessagesSupportMeta","title":"CognitionAcp.WholeUserMessagesSupportMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowAgentUpdateMeta","title":"CognitionAcp.WorkflowAgentUpdateMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowMigrationOutcome","title":"CognitionAcp.WorkflowMigrationOutcome","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowMigrationResult","title":"CognitionAcp.WorkflowMigrationResult","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowMigrationScope","title":"CognitionAcp.WorkflowMigrationScope","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowRunMeta","title":"CognitionAcp.WorkflowRunMeta","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowsListResponse","title":"CognitionAcp.WorkflowsListResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowsMigrateParams","title":"CognitionAcp.WorkflowsMigrateParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkflowsMigrateResponse","title":"CognitionAcp.WorkflowsMigrateResponse","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkspaceDidChangeFilesParams","title":"CognitionAcp.WorkspaceDidChangeFilesParams","tag":"TYPE"},{"href":"/sdk/reference/CognitionAcp/types/WorkspaceDidChangeRevisionParams","title":"CognitionAcp.WorkspaceDidChangeRevisionParams","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionAgentCapability","title":"CognitionAgentCapability","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionAgentRequest","title":"CognitionAgentRequest","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionClientCapabilities","title":"CognitionClientCapabilities","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionClientCapability","title":"CognitionClientCapability","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionErrorCode","title":"CognitionErrorCode","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionExtensionMethod","title":"CognitionExtensionMethod","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionExtensionMethodName","title":"CognitionExtensionMethodName","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionExtensionNotification","title":"CognitionExtensionNotification","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionMetaKey","title":"CognitionMetaKey","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionRequestMethod","title":"CognitionRequestMethod","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionRequestParams","title":"CognitionRequestParams","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionRequestResult","title":"CognitionRequestResult","tag":"TYPE"},{"href":"/sdk/reference/types/CognitionToolCallMeta","title":"CognitionToolCallMeta","tag":"TYPE"},{"href":"/sdk/reference/types/CompactionStatus","title":"CompactionStatus","tag":"TYPE"},{"href":"/sdk/reference/types/CreateCloudOptions","title":"CreateCloudOptions","tag":"TYPE"},{"href":"/sdk/reference/types/CreateDevinOptions","title":"CreateDevinOptions","tag":"TYPE"},{"href":"/sdk/reference/types/CreateLocalOptions","title":"CreateLocalOptions","tag":"TYPE"},{"href":"/sdk/reference/types/EphemeralUpdateNotification","title":"EphemeralUpdateNotification","tag":"TYPE"},{"href":"/sdk/reference/types/FileAction","title":"FileAction","tag":"TYPE"},{"href":"/sdk/reference/types/FinishedOutcome","title":"FinishedOutcome","tag":"TYPE"},{"href":"/sdk/reference/types/JsonRpcErrorCode","title":"JsonRpcErrorCode","tag":"TYPE"},{"href":"/sdk/reference/types/LoadedCloudSession","title":"LoadedCloudSession","tag":"TYPE"},{"href":"/sdk/reference/types/LoadedLocalSession","title":"LoadedLocalSession","tag":"TYPE"},{"href":"/sdk/reference/types/McpServer","title":"McpServer","tag":"TYPE"},{"href":"/sdk/reference/types/ModalSeverity","title":"ModalSeverity","tag":"TYPE"},{"href":"/sdk/reference/types/OutputLevel","title":"OutputLevel","tag":"TYPE"},{"href":"/sdk/reference/types/PermissionHandler","title":"PermissionHandler","tag":"TYPE"},{"href":"/sdk/reference/types/PermissionOptionId","title":"PermissionOptionId","tag":"TYPE"},{"href":"/sdk/reference/types/PermissionOptionKind","title":"PermissionOptionKind","tag":"TYPE"},{"href":"/sdk/reference/prompt/types/PromptContentBlock","title":"prompt.PromptContentBlock","tag":"TYPE"},{"href":"/sdk/reference/prompt/types/PromptInput","title":"prompt.PromptInput","tag":"TYPE"},{"href":"/sdk/reference/prompt/types/PromptMeta","title":"prompt.PromptMeta","tag":"TYPE"},{"href":"/sdk/reference/types/ReplayFrom","title":"ReplayFrom","tag":"TYPE"},{"href":"/sdk/reference/types/ResponseDimension","title":"ResponseDimension","tag":"TYPE"},{"href":"/sdk/reference/types/ResponseDimensionKind","title":"ResponseDimensionKind","tag":"TYPE"},{"href":"/sdk/reference/types/RevertStepKind","title":"RevertStepKind","tag":"TYPE"},{"href":"/sdk/reference/types/SessionEvent","title":"SessionEvent","tag":"TYPE"},{"href":"/sdk/reference/types/SessionScopedParams","title":"SessionScopedParams","tag":"TYPE"},{"href":"/sdk/reference/types/SessionStatus","title":"SessionStatus","tag":"TYPE"},{"href":"/sdk/reference/types/SessionUpdateKind","title":"SessionUpdateKind","tag":"TYPE"},{"href":"/sdk/reference/types/StandardSchemaResult","title":"StandardSchemaResult","tag":"TYPE"},{"href":"/sdk/reference/types/StopReason","title":"StopReason","tag":"TYPE"},{"href":"/sdk/reference/types/ToolCallDetail","title":"ToolCallDetail","tag":"TYPE"},{"href":"/sdk/reference/types/ToolCallStatus","title":"ToolCallStatus","tag":"TYPE"},{"href":"/sdk/reference/types/ToolName","title":"ToolName","tag":"TYPE"},{"href":"/sdk/reference/types/TraceableSession","title":"TraceableSession","tag":"TYPE"},{"href":"/sdk/reference/types/TurnState","title":"TurnState","tag":"TYPE"},{"href":"/sdk/reference/types/TurnStats","title":"TurnStats","tag":"TYPE"}]},{"group":"Variables","pages":[{"href":"/sdk/reference/variables/ACP_PROTOCOL_VERSION","title":"ACP_PROTOCOL_VERSION","tag":"VARIABLE"},{"href":"/sdk/reference/variables/AcpMethod","title":"AcpMethod","tag":"VARIABLE"},{"href":"/sdk/reference/variables/AgentStopCause","title":"AgentStopCause","tag":"VARIABLE"},{"href":"/sdk/reference/variables/CloudAgentCapability","title":"CloudAgentCapability","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ADA_QUERIES_BULK_ARCHIVE_METHOD","title":"CognitionAcp.ADA_QUERIES_BULK_ARCHIVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/AGENT_STOPPED_METHOD","title":"CognitionAcp.AGENT_STOPPED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/AUTH_INSTALL_LICENSE_METHOD","title":"CognitionAcp.AUTH_INSTALL_LICENSE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/AUTH_LOGIN_METHOD","title":"CognitionAcp.AUTH_LOGIN_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/AUTH_STATUS_METHOD","title":"CognitionAcp.AUTH_STATUS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/BILLING_INFORMATION_METHOD","title":"CognitionAcp.BILLING_INFORMATION_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/BROWSER_PREVIEW_CAPTURE_METHOD","title":"CognitionAcp.BROWSER_PREVIEW_CAPTURE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/BROWSER_PREVIEW_OPENED_METHOD","title":"CognitionAcp.BROWSER_PREVIEW_OPENED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CLIPBOARD_WRITE_METHOD","title":"CognitionAcp.CLIPBOARD_WRITE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CODE_SCAN_SESSION_GET_METHOD","title":"CognitionAcp.CODE_SCAN_SESSION_GET_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CODE_SCAN_SETUP_DISMISS_METHOD","title":"CognitionAcp.CODE_SCAN_SETUP_DISMISS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CODE_SCAN_SETUP_SUBMIT_METHOD","title":"CognitionAcp.CODE_SCAN_SETUP_SUBMIT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CODE_SCAN_SUGGESTION_DISMISS_METHOD","title":"CognitionAcp.CODE_SCAN_SUGGESTION_DISMISS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/COMMAND_REVISE_METHOD","title":"CognitionAcp.COMMAND_REVISE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/COMPACTION_METHOD","title":"CognitionAcp.COMPACTION_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CONFIG_READ_METHOD","title":"CognitionAcp.CONFIG_READ_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CONFIG_WRITE_METHOD","title":"CognitionAcp.CONFIG_WRITE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/CONNECTION_RETRY_METHOD","title":"CognitionAcp.CONNECTION_RETRY_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/DEPLOY_APPROVE_METHOD","title":"CognitionAcp.DEPLOY_APPROVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/DOCUMENT_DID_BLUR_METHOD","title":"CognitionAcp.DOCUMENT_DID_BLUR_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/DOCUMENT_DID_CHANGE_DIRTY_METHOD","title":"CognitionAcp.DOCUMENT_DID_CHANGE_DIRTY_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/DOCUMENT_DID_CLOSE_METHOD","title":"CognitionAcp.DOCUMENT_DID_CLOSE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/DOCUMENT_DID_FOCUS_METHOD","title":"CognitionAcp.DOCUMENT_DID_FOCUS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/DOCUMENT_DID_OPEN_METHOD","title":"CognitionAcp.DOCUMENT_DID_OPEN_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ENVIRONMENT_SUGGESTION_ACCEPT_METHOD","title":"CognitionAcp.ENVIRONMENT_SUGGESTION_ACCEPT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ENVIRONMENT_SUGGESTION_DISMISS_METHOD","title":"CognitionAcp.ENVIRONMENT_SUGGESTION_DISMISS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/EPHEMERAL_PRESENCE_METHOD","title":"CognitionAcp.EPHEMERAL_PRESENCE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/EPHEMERAL_PUBLISH_METHOD","title":"CognitionAcp.EPHEMERAL_PUBLISH_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/EPHEMERAL_SUBSCRIBE_METHOD","title":"CognitionAcp.EPHEMERAL_SUBSCRIBE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/EPHEMERAL_UNSUBSCRIBE_METHOD","title":"CognitionAcp.EPHEMERAL_UNSUBSCRIBE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/EPHEMERAL_UPDATE_METHOD","title":"CognitionAcp.EPHEMERAL_UPDATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_BLOCKED_ACTION","title":"CognitionAcp.ERROR_CODE_BLOCKED_ACTION","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_CONTENT_FILTER","title":"CognitionAcp.ERROR_CODE_CONTENT_FILTER","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_DEADLINE_EXCEEDED","title":"CognitionAcp.ERROR_CODE_DEADLINE_EXCEEDED","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_INTERNAL","title":"CognitionAcp.ERROR_CODE_INTERNAL","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_LICENSE_INVALID","title":"CognitionAcp.ERROR_CODE_LICENSE_INVALID","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_RESOURCE_EXHAUSTED","title":"CognitionAcp.ERROR_CODE_RESOURCE_EXHAUSTED","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_SESSION_LOCKED","title":"CognitionAcp.ERROR_CODE_SESSION_LOCKED","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_SESSION_NOT_FOUND","title":"CognitionAcp.ERROR_CODE_SESSION_NOT_FOUND","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_UNAVAILABLE","title":"CognitionAcp.ERROR_CODE_UNAVAILABLE","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_CODE_UNKNOWN","title":"CognitionAcp.ERROR_CODE_UNKNOWN","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_DATA_KIND_KEY","title":"CognitionAcp.ERROR_DATA_KIND_KEY","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_DATA_LOCK_HOLDER_PID_KEY","title":"CognitionAcp.ERROR_DATA_LOCK_HOLDER_PID_KEY","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_DATA_RETRY_AFTER_KEY","title":"CognitionAcp.ERROR_DATA_RETRY_AFTER_KEY","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_DATA_RETRYABLE_KEY","title":"CognitionAcp.ERROR_DATA_RETRYABLE_KEY","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_KIND_AGENT_CHANNEL_CLOSED","title":"CognitionAcp.ERROR_KIND_AGENT_CHANNEL_CLOSED","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_KIND_BLOCKED_ACTION","title":"CognitionAcp.ERROR_KIND_BLOCKED_ACTION","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/ERROR_KIND_REPO_NOT_IN_ENVIRONMENT","title":"CognitionAcp.ERROR_KIND_REPO_NOT_IN_ENVIRONMENT","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/FOLDER_CREATE_METHOD","title":"CognitionAcp.FOLDER_CREATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/FOLDER_DELETE_METHOD","title":"CognitionAcp.FOLDER_DELETE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/FOLDER_LIST_METHOD","title":"CognitionAcp.FOLDER_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/FOLDER_RENAME_METHOD","title":"CognitionAcp.FOLDER_RENAME_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/FOLDER_REORDER_METHOD","title":"CognitionAcp.FOLDER_REORDER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/HANDOFF_RESOLVE_METHOD","title":"CognitionAcp.HANDOFF_RESOLVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/HOOKS_LIST_METHOD","title":"CognitionAcp.HOOKS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/HOOKS_MIGRATE_LIST_METHOD","title":"CognitionAcp.HOOKS_MIGRATE_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/HOOKS_MIGRATE_METHOD","title":"CognitionAcp.HOOKS_MIGRATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/INTERACTIVE_BROWSER_GET_METHOD","title":"CognitionAcp.INTERACTIVE_BROWSER_GET_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOAD_STARTING_METHOD","title":"CognitionAcp.LOAD_STARTING_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOAD_STATS_METHOD","title":"CognitionAcp.LOAD_STATS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOCAL_TOOLS_APPROVAL_MODE_METHOD","title":"CognitionAcp.LOCAL_TOOLS_APPROVAL_MODE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOCAL_TOOLS_CONNECT_METHOD","title":"CognitionAcp.LOCAL_TOOLS_CONNECT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOCAL_TOOLS_DISCONNECT_METHOD","title":"CognitionAcp.LOCAL_TOOLS_DISCONNECT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOCAL_TOOLS_RETRY_METHOD","title":"CognitionAcp.LOCAL_TOOLS_RETRY_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/LOCAL_TOOLS_STATUS_METHOD","title":"CognitionAcp.LOCAL_TOOLS_STATUS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_CONNECT_SERVER_METHOD","title":"CognitionAcp.MCP_CONNECT_SERVER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_DISCONNECT_SERVER_METHOD","title":"CognitionAcp.MCP_DISCONNECT_SERVER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_INSTALL_SERVER_METHOD","title":"CognitionAcp.MCP_INSTALL_SERVER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_LIST_SERVERS_METHOD","title":"CognitionAcp.MCP_LIST_SERVERS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_LIST_TOOLS_METHOD","title":"CognitionAcp.MCP_LIST_TOOLS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_OAUTH_AUTHORIZE_METHOD","title":"CognitionAcp.MCP_OAUTH_AUTHORIZE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_REMOVE_SERVER_METHOD","title":"CognitionAcp.MCP_REMOVE_SERVER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_SERVERS_CHANGED_METHOD","title":"CognitionAcp.MCP_SERVERS_CHANGED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_TOGGLE_SERVER_METHOD","title":"CognitionAcp.MCP_TOGGLE_SERVER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MCP_TOGGLE_TOOL_METHOD","title":"CognitionAcp.MCP_TOGGLE_TOOL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MEMORY_DRIVE_REACT_METHOD","title":"CognitionAcp.MEMORY_DRIVE_REACT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MEMORY_DRIVE_REVERT_METHOD","title":"CognitionAcp.MEMORY_DRIVE_REVERT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MESSAGES_IN_QUEUED_METHOD","title":"CognitionAcp.MESSAGES_IN_QUEUED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MODELS_READ_METHOD","title":"CognitionAcp.MODELS_READ_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MODELS_TEST_METHOD","title":"CognitionAcp.MODELS_TEST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MODELS_VALIDATE_METHOD","title":"CognitionAcp.MODELS_VALIDATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/MODELS_WRITE_METHOD","title":"CognitionAcp.MODELS_WRITE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NET_POLICY_ALLOW_IN_PROFILE_METHOD","title":"CognitionAcp.NET_POLICY_ALLOW_IN_PROFILE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NET_POLICY_GET_METHOD","title":"CognitionAcp.NET_POLICY_GET_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NET_POLICY_UPDATE_METHOD","title":"CognitionAcp.NET_POLICY_UPDATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_ACT_METHOD","title":"CognitionAcp.NOTIFICATIONS_ACT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_CHANGED_METHOD","title":"CognitionAcp.NOTIFICATIONS_CHANGED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_DISMISS_METHOD","title":"CognitionAcp.NOTIFICATIONS_DISMISS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_LIST_METHOD","title":"CognitionAcp.NOTIFICATIONS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_MARK_READ_METHOD","title":"CognitionAcp.NOTIFICATIONS_MARK_READ_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_POST_METHOD","title":"CognitionAcp.NOTIFICATIONS_POST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/NOTIFICATIONS_QUEUES_METHOD","title":"CognitionAcp.NOTIFICATIONS_QUEUES_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/OUTPUT_CHANNEL_METHOD","title":"CognitionAcp.OUTPUT_CHANNEL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PERMISSION_RESPOND_METHOD","title":"CognitionAcp.PERMISSION_RESPOND_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLAN_ACCEPT_METHOD","title":"CognitionAcp.PLAN_ACCEPT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLAN_EDIT_METHOD","title":"CognitionAcp.PLAN_EDIT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLAN_TOGGLE_CONFIRM_MODE_METHOD","title":"CognitionAcp.PLAN_TOGGLE_CONFIRM_MODE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLANS_LIST_METHOD","title":"CognitionAcp.PLANS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLUGINS_ASSETS_METHOD","title":"CognitionAcp.PLUGINS_ASSETS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLUGINS_CHANGED_NOTIFICATION","title":"CognitionAcp.PLUGINS_CHANGED_NOTIFICATION","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLUGINS_INSTALL_METHOD","title":"CognitionAcp.PLUGINS_INSTALL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLUGINS_LIST_METHOD","title":"CognitionAcp.PLUGINS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLUGINS_REFRESH_METHOD","title":"CognitionAcp.PLUGINS_REFRESH_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PLUGINS_REMOVE_METHOD","title":"CognitionAcp.PLUGINS_REMOVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PR_CLOSE_METHOD","title":"CognitionAcp.PR_CLOSE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PR_MERGE_METHOD","title":"CognitionAcp.PR_MERGE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PR_MERGE_STATUS_METHOD","title":"CognitionAcp.PR_MERGE_STATUS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PR_REVIEW_JOB_METHOD","title":"CognitionAcp.PR_REVIEW_JOB_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PR_REVIEW_JOBS_METHOD","title":"CognitionAcp.PR_REVIEW_JOBS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PROCESS_MEMORY_METHOD","title":"CognitionAcp.PROCESS_MEMORY_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/PROMPT_HISTORY_READ_METHOD","title":"CognitionAcp.PROMPT_HISTORY_READ_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/QUEUED_MESSAGES_UPDATE_METHOD","title":"CognitionAcp.QUEUED_MESSAGES_UPDATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/RECENT_MODEL_UIDS_READ_METHOD","title":"CognitionAcp.RECENT_MODEL_UIDS_READ_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REPO_INDEX_DECIDE_METHOD","title":"CognitionAcp.REPO_INDEX_DECIDE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REPOS_LIST_METHOD","title":"CognitionAcp.REPOS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REQUEST_DIAGNOSTICS_METHOD","title":"CognitionAcp.REQUEST_DIAGNOSTICS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_EXECUTE_METHOD","title":"CognitionAcp.REVERT_EXECUTE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_FORK_FROM_STEP_METHOD","title":"CognitionAcp.REVERT_FORK_FROM_STEP_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_HISTORY_REWOUND_METHOD","title":"CognitionAcp.REVERT_HISTORY_REWOUND_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_LIST_STEPS_METHOD","title":"CognitionAcp.REVERT_LIST_STEPS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_PREVIEW_METHOD","title":"CognitionAcp.REVERT_PREVIEW_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_RESUME_METHOD","title":"CognitionAcp.REVERT_RESUME_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/REVERT_STEPS_UPDATED_METHOD","title":"CognitionAcp.REVERT_STEPS_UPDATED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/RULES_LIST_METHOD","title":"CognitionAcp.RULES_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SECRET_CREATE_METHOD","title":"CognitionAcp.SECRET_CREATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SECRET_LIST_METHOD","title":"CognitionAcp.SECRET_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SECRET_PROVIDE_METHOD","title":"CognitionAcp.SECRET_PROVIDE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SECRET_SAVE_METHOD","title":"CognitionAcp.SECRET_SAVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_END_METHOD","title":"CognitionAcp.SESSION_END_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_EXPORT_METHOD","title":"CognitionAcp.SESSION_EXPORT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_FEEDBACK_METHOD","title":"CognitionAcp.SESSION_FEEDBACK_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_HEARTBEAT_METHOD","title":"CognitionAcp.SESSION_HEARTBEAT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_ID_PARAM_ALTERNATIVES","title":"CognitionAcp.SESSION_ID_PARAM_ALTERNATIVES","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_ID_PARAM_KEY","title":"CognitionAcp.SESSION_ID_PARAM_KEY","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_LOAD_PAGE_METHOD","title":"CognitionAcp.SESSION_LOAD_PAGE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_LOAD_SPINE_METHOD","title":"CognitionAcp.SESSION_LOAD_SPINE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_MARK_READ_METHOD","title":"CognitionAcp.SESSION_MARK_READ_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_MOVE_TO_FOLDER_METHOD","title":"CognitionAcp.SESSION_MOVE_TO_FOLDER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_PIN_METHOD","title":"CognitionAcp.SESSION_PIN_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_REBOOT_METHOD","title":"CognitionAcp.SESSION_REBOOT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_REMOVE_FROM_FOLDER_METHOD","title":"CognitionAcp.SESSION_REMOVE_FROM_FOLDER_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_RENAME_METHOD","title":"CognitionAcp.SESSION_RENAME_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_SET_TAGS_METHOD","title":"CognitionAcp.SESSION_SET_TAGS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_SHARE_METHOD","title":"CognitionAcp.SESSION_SHARE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_SPENDING_LIMIT_SET_METHOD","title":"CognitionAcp.SESSION_SPENDING_LIMIT_SET_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_STOP_METHOD","title":"CognitionAcp.SESSION_STOP_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSION_UPDATE_BATCH_METHOD","title":"CognitionAcp.SESSION_UPDATE_BATCH_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SESSIONS_BULK_ARCHIVE_METHOD","title":"CognitionAcp.SESSIONS_BULK_ARCHIVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SETUP_STEPS_SUGGEST_CHANGES_METHOD","title":"CognitionAcp.SETUP_STEPS_SUGGEST_CHANGES_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SHOW_MODAL_METHOD","title":"CognitionAcp.SHOW_MODAL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SIDECHAIN_CANCEL_METHOD","title":"CognitionAcp.SIDECHAIN_CANCEL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SIDECHAIN_REQUEST_METHOD","title":"CognitionAcp.SIDECHAIN_REQUEST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SKILL_SUGGESTION_ACCEPT_METHOD","title":"CognitionAcp.SKILL_SUGGESTION_ACCEPT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SKILLS_LIST_METHOD","title":"CognitionAcp.SKILLS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SLACK_SYNC_UPDATE_METHOD","title":"CognitionAcp.SLACK_SYNC_UPDATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SNAPSHOT_SETUP_CREATE_BLUEPRINT_METHOD","title":"CognitionAcp.SNAPSHOT_SETUP_CREATE_BLUEPRINT_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SNAPSHOT_SETUP_GET_BUILD_JOB_METHOD","title":"CognitionAcp.SNAPSHOT_SETUP_GET_BUILD_JOB_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SNAPSHOT_SETUP_LIST_BLUEPRINTS_METHOD","title":"CognitionAcp.SNAPSHOT_SETUP_LIST_BLUEPRINTS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SNAPSHOT_SETUP_PIN_BUILD_METHOD","title":"CognitionAcp.SNAPSHOT_SETUP_PIN_BUILD_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SNAPSHOT_SETUP_TRIGGER_BUILD_METHOD","title":"CognitionAcp.SNAPSHOT_SETUP_TRIGGER_BUILD_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SNAPSHOT_SETUP_UPDATE_BLUEPRINT_CONTENTS_METHOD","title":"CognitionAcp.SNAPSHOT_SETUP_UPDATE_BLUEPRINT_CONTENTS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SUBAGENT_BACKGROUND_METHOD","title":"CognitionAcp.SUBAGENT_BACKGROUND_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SUBAGENT_CANCEL_METHOD","title":"CognitionAcp.SUBAGENT_CANCEL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SUBAGENT_FOREGROUND_METHOD","title":"CognitionAcp.SUBAGENT_FOREGROUND_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/SUBAGENTS_LIST_METHOD","title":"CognitionAcp.SUBAGENTS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/TEAMS_SYNC_UPDATE_METHOD","title":"CognitionAcp.TEAMS_SYNC_UPDATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/TERMINAL_COMMAND_COMPLETED_METHOD","title":"CognitionAcp.TERMINAL_COMMAND_COMPLETED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/TERMINAL_COMMAND_STARTED_METHOD","title":"CognitionAcp.TERMINAL_COMMAND_STARTED_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/TERMINAL_KILL_BACKGROUND_SHELL_METHOD","title":"CognitionAcp.TERMINAL_KILL_BACKGROUND_SHELL_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/TEST_APP_APPROVE_METHOD","title":"CognitionAcp.TEST_APP_APPROVE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/THINKING_COMPLETE_METHOD","title":"CognitionAcp.THINKING_COMPLETE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/TURN_STATS_METHOD","title":"CognitionAcp.TURN_STATS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/WIKI_CONTENTS_METHOD","title":"CognitionAcp.WIKI_CONTENTS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/WIKI_STATUS_METHOD","title":"CognitionAcp.WIKI_STATUS_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/WORKFLOWS_LIST_METHOD","title":"CognitionAcp.WORKFLOWS_LIST_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/WORKFLOWS_MIGRATE_METHOD","title":"CognitionAcp.WORKFLOWS_MIGRATE_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/WORKSPACE_DID_CHANGE_FILES_METHOD","title":"CognitionAcp.WORKSPACE_DID_CHANGE_FILES_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/CognitionAcp/variables/WORKSPACE_DID_CHANGE_REVISION_METHOD","title":"CognitionAcp.WORKSPACE_DID_CHANGE_REVISION_METHOD","tag":"VARIABLE"},{"href":"/sdk/reference/variables/CognitionClientCapability","title":"CognitionClientCapability","tag":"VARIABLE"},{"href":"/sdk/reference/variables/CognitionErrorCode","title":"CognitionErrorCode","tag":"VARIABLE"},{"href":"/sdk/reference/variables/CognitionExtensionMethod","title":"CognitionExtensionMethod","tag":"VARIABLE"},{"href":"/sdk/reference/variables/CognitionMetaKey","title":"CognitionMetaKey","tag":"VARIABLE"},{"href":"/sdk/reference/variables/CompactionStatus","title":"CompactionStatus","tag":"VARIABLE"},{"href":"/sdk/reference/variables/DEFAULT_CLIENT_CAPABILITIES","title":"DEFAULT_CLIENT_CAPABILITIES","tag":"VARIABLE"},{"href":"/sdk/reference/variables/FinishedOutcome","title":"FinishedOutcome","tag":"VARIABLE"},{"href":"/sdk/reference/variables/JsonRpcErrorCode","title":"JsonRpcErrorCode","tag":"VARIABLE"},{"href":"/sdk/reference/variables/ModalSeverity","title":"ModalSeverity","tag":"VARIABLE"},{"href":"/sdk/reference/variables/OutputLevel","title":"OutputLevel","tag":"VARIABLE"},{"href":"/sdk/reference/variables/PermissionOptionId","title":"PermissionOptionId","tag":"VARIABLE"},{"href":"/sdk/reference/variables/PermissionOptionKind","title":"PermissionOptionKind","tag":"VARIABLE"},{"href":"/sdk/reference/variables/RevertStepKind","title":"RevertStepKind","tag":"VARIABLE"},{"href":"/sdk/reference/variables/SessionStatus","title":"SessionStatus","tag":"VARIABLE"},{"href":"/sdk/reference/variables/SessionUpdateKind","title":"SessionUpdateKind","tag":"VARIABLE"},{"href":"/sdk/reference/variables/StopReason","title":"StopReason","tag":"VARIABLE"},{"href":"/sdk/reference/variables/TAIL_REPLAY_CURSOR_TYPE","title":"TAIL_REPLAY_CURSOR_TYPE","tag":"VARIABLE"},{"href":"/sdk/reference/variables/ToolCallStatus","title":"ToolCallStatus","tag":"VARIABLE"},{"href":"/sdk/reference/variables/TurnState","title":"TurnState","tag":"VARIABLE"}]}]},{"group":"API client","pages":[{"title":"Devin API client (devin.api)","sidebarTitle":"Using devin.api","href":"/sdk/api/overview"},{"href":"/sdk/api/package-overview","title":"@cognition-ai/sdk"},{"group":"Classes","pages":[{"href":"/sdk/api/classes/AttachmentsClient","title":"AttachmentsClient","tag":"CLASS"},{"href":"/sdk/api/classes/CodeScansClient","title":"CodeScansClient","tag":"CLASS"},{"href":"/sdk/api/classes/ConsumptionClient","title":"ConsumptionClient","tag":"CLASS"},{"href":"/sdk/api/DevinApi/classes/ConflictError","title":"DevinApi.ConflictError","tag":"CLASS"},{"href":"/sdk/api/DevinApi/classes/ForbiddenError","title":"DevinApi.ForbiddenError","tag":"CLASS"},{"href":"/sdk/api/DevinApi/classes/NotFoundError","title":"DevinApi.NotFoundError","tag":"CLASS"},{"href":"/sdk/api/DevinApi/classes/TooManyRequestsError","title":"DevinApi.TooManyRequestsError","tag":"CLASS"},{"href":"/sdk/api/DevinApi/classes/UnauthorizedError","title":"DevinApi.UnauthorizedError","tag":"CLASS"},{"href":"/sdk/api/DevinApi/classes/UnprocessableEntityError","title":"DevinApi.UnprocessableEntityError","tag":"CLASS"},{"href":"/sdk/api/classes/DevinApiClient","title":"DevinApiClient","tag":"CLASS"},{"href":"/sdk/api/classes/DevinApiError","title":"DevinApiError","tag":"CLASS"},{"href":"/sdk/api/classes/DevinApiTimeoutError","title":"DevinApiTimeoutError","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseAcuLimitsClient","title":"EnterpriseAcuLimitsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseAuditLogsClient","title":"EnterpriseAuditLogsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseClient","title":"EnterpriseClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseCodeScansClient","title":"EnterpriseCodeScansClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseConsumptionClient","title":"EnterpriseConsumptionClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseGitConnectionsClient","title":"EnterpriseGitConnectionsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseGitPermissionsClient","title":"EnterpriseGitPermissionsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseGuardrailViolationsClient","title":"EnterpriseGuardrailViolationsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseHypervisorsClient","title":"EnterpriseHypervisorsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseIdpGroupsClient","title":"EnterpriseIdpGroupsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseIpAccessListClient","title":"EnterpriseIpAccessListClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseMetricsClient","title":"EnterpriseMetricsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseNotesClient","title":"EnterpriseNotesClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseOrganizationsClient","title":"EnterpriseOrganizationsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseOrganizationTagsClient","title":"EnterpriseOrganizationTagsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseOrgGroupsClient","title":"EnterpriseOrgGroupsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterprisePlaybooksClient","title":"EnterprisePlaybooksClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterprisePrReviewsClient","title":"EnterprisePrReviewsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseQueueClient","title":"EnterpriseQueueClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseRolesClient","title":"EnterpriseRolesClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseServiceUserApiKeysClient","title":"EnterpriseServiceUserApiKeysClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseServiceUsersClient","title":"EnterpriseServiceUsersClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseSessionsClient","title":"EnterpriseSessionsClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseSnapshotSetupClient","title":"EnterpriseSnapshotSetupClient","tag":"CLASS"},{"href":"/sdk/api/classes/EnterpriseUsersClient","title":"EnterpriseUsersClient","tag":"CLASS"},{"href":"/sdk/api/classes/MetricsClient","title":"MetricsClient","tag":"CLASS"},{"href":"/sdk/api/classes/NotesClient","title":"NotesClient","tag":"CLASS"},{"href":"/sdk/api/classes/PlaybooksClient","title":"PlaybooksClient","tag":"CLASS"},{"href":"/sdk/api/classes/PrReviewsClient","title":"PrReviewsClient","tag":"CLASS"},{"href":"/sdk/api/classes/RepositoriesClient","title":"RepositoriesClient","tag":"CLASS"},{"href":"/sdk/api/classes/SchedulesClient","title":"SchedulesClient","tag":"CLASS"},{"href":"/sdk/api/classes/SecretsClient","title":"SecretsClient","tag":"CLASS"},{"href":"/sdk/api/classes/SessionsClient","title":"SessionsClient","tag":"CLASS"},{"href":"/sdk/api/classes/SnapshotSetupClient","title":"SnapshotSetupClient","tag":"CLASS"},{"href":"/sdk/api/classes/UsersClient","title":"UsersClient","tag":"CLASS"}]},{"group":"Interfaces","pages":[{"href":"/sdk/api/AttachmentsClient/interfaces/RequestOptions","title":"AttachmentsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/interfaces/BaseRequestOptions","title":"BaseRequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/CodeScansClient/interfaces/RequestOptions","title":"CodeScansClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/ConsumptionClient/interfaces/RequestOptions","title":"ConsumptionClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ActiveUserMetricsResponse","title":"DevinApi.ActiveUserMetricsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/AcuLimitResponse","title":"DevinApi.AcuLimitResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/AcusByProduct","title":"DevinApi.AcusByProduct","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ApiKeyResponse","title":"DevinApi.ApiKeyResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ApiKeyWithTokenResponse","title":"DevinApi.ApiKeyWithTokenResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/AppendSessionTagsSessionsRequest","title":"DevinApi.AppendSessionTagsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ArchiveSessionSessionsRequest","title":"DevinApi.ArchiveSessionSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/AttachmentResponse","title":"DevinApi.AttachmentResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/AuditLogResponse","title":"DevinApi.AuditLogResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/Blueprint","title":"DevinApi.Blueprint","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/BlueprintFile","title":"DevinApi.BlueprintFile","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/BlueprintFileList","title":"DevinApi.BlueprintFileList","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/BlueprintList","title":"DevinApi.BlueprintList","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/BodyHandleUploadAttachmentV3OrganizationsOrgIdAttachmentsPost","title":"DevinApi.BodyHandleUploadAttachmentV3OrganizationsOrgIdAttachmentsPost","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/BodyUploadOrgBlueprintFileV3Beta1OrganizationsOrgIdSnapshotSetupBlueprintsBlueprintIdFilesPost","title":"DevinApi.BodyUploadOrgBlueprintFileV3Beta1OrganizationsOrgIdSnapshotSetupBlueprintsBlueprintIdFilesPost","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/Build","title":"DevinApi.Build","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/BulkIndexRepositoriesRequest","title":"DevinApi.BulkIndexRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CancelOrgBuildSnapshotSetupRequest","title":"DevinApi.CancelOrgBuildSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CategoryMetrics","title":"DevinApi.CategoryMetrics","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanCreateRequest","title":"DevinApi.CodeScanCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanFindingResponse","title":"DevinApi.CodeScanFindingResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanMetricsResponse","title":"DevinApi.CodeScanMetricsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanProfileDetailResponse","title":"DevinApi.CodeScanProfileDetailResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanProfileResponse","title":"DevinApi.CodeScanProfileResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanProfileSummaryResponse","title":"DevinApi.CodeScanProfileSummaryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanReferenceSnippetResponse","title":"DevinApi.CodeScanReferenceSnippetResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CodeScanResponse","title":"DevinApi.CodeScanResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ConsumptionByDateResponse","title":"DevinApi.ConsumptionByDateResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ConsumptionCycle","title":"DevinApi.ConsumptionCycle","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ConsumptionResponse","title":"DevinApi.ConsumptionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CreateNoteNotesRequest","title":"DevinApi.CreateNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CreateOrgBlueprintBody","title":"DevinApi.CreateOrgBlueprintBody","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CreatePlaybookPlaybooksRequest","title":"DevinApi.CreatePlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CreatePrReviewPrReviewsRequest","title":"DevinApi.CreatePrReviewPrReviewsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/CursorPaginationParams","title":"DevinApi.CursorPaginationParams","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DefaultTagResponse","title":"DevinApi.DefaultTagResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DeleteNoteNotesRequest","title":"DevinApi.DeleteNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DeleteOrgBlueprintFileSnapshotSetupRequest","title":"DevinApi.DeleteOrgBlueprintFileSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DeleteOrgBlueprintSnapshotSetupRequest","title":"DevinApi.DeleteOrgBlueprintSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DeletePlaybookPlaybooksRequest","title":"DevinApi.DeletePlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DeleteScheduleSchedulesRequest","title":"DevinApi.DeleteScheduleSchedulesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DeleteSecretSecretsRequest","title":"DevinApi.DeleteSecretSecretsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DevinBrainUserSelf","title":"DevinApi.DevinBrainUserSelf","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/DownloadAttachmentAttachmentsRequest","title":"DevinApi.DownloadAttachmentAttachmentsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AppendOrganizationAllowedTagsOrganizationTagsRequest","title":"DevinApi.enterprise.AppendOrganizationAllowedTagsOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AppendSessionTagsSessionsRequest","title":"DevinApi.enterprise.AppendSessionTagsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AssignEnterpriseIdpGroupRoleIdpGroupsRequest","title":"DevinApi.enterprise.AssignEnterpriseIdpGroupRoleIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AssignOrganizationIdpGroupRoleIdpGroupsRequest","title":"DevinApi.enterprise.AssignOrganizationIdpGroupRoleIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AssignOrganizationServiceUserRoleServiceUsersRequest","title":"DevinApi.enterprise.AssignOrganizationServiceUserRoleServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AssignOrganizationUserRoleUsersRequest","title":"DevinApi.enterprise.AssignOrganizationUserRoleUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/AssignServiceUserRoleServiceUsersRequest","title":"DevinApi.enterprise.AssignServiceUserRoleServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/BodyUploadEnterpriseBlueprintFileEndpointV3Beta1EnterpriseSnapshotSetupBlueprintsBlueprintIdFilesPost","title":"DevinApi.enterprise.BodyUploadEnterpriseBlueprintFileEndpointV3Beta1EnterpriseSnapshotSetupBlueprintsBlueprintIdFilesPost","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/BulkCreateOrganizationGitPermissionsGitPermissionsRequest","title":"DevinApi.enterprise.BulkCreateOrganizationGitPermissionsGitPermissionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ClearOrganizationAllowedTagsOrganizationTagsRequest","title":"DevinApi.enterprise.ClearOrganizationAllowedTagsOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ClearOrganizationDefaultTagOrganizationTagsRequest","title":"DevinApi.enterprise.ClearOrganizationDefaultTagOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ClearOrganizationGitPermissionsGitPermissionsRequest","title":"DevinApi.enterprise.ClearOrganizationGitPermissionsGitPermissionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/CreateApiKeyRequest","title":"DevinApi.enterprise.CreateApiKeyRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/CreateEnterpriseBlueprintBody","title":"DevinApi.enterprise.CreateEnterpriseBlueprintBody","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DefaultTagRequest","title":"DevinApi.enterprise.DefaultTagRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteAccountIdpGroupIdpGroupsRequest","title":"DevinApi.enterprise.DeleteAccountIdpGroupIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteBlueprintEndpointSnapshotSetupRequest","title":"DevinApi.enterprise.DeleteBlueprintEndpointSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteBlueprintFileSnapshotSetupRequest","title":"DevinApi.enterprise.DeleteBlueprintFileSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteNoteNotesRequest","title":"DevinApi.enterprise.DeleteNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteOrganizationGitPermissionGitPermissionsRequest","title":"DevinApi.enterprise.DeleteOrganizationGitPermissionGitPermissionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteOrganizationOrganizationsRequest","title":"DevinApi.enterprise.DeleteOrganizationOrganizationsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeleteOrgDevinAcuLimitAcuLimitsRequest","title":"DevinApi.enterprise.DeleteOrgDevinAcuLimitAcuLimitsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/DeletePlaybookPlaybooksRequest","title":"DevinApi.enterprise.DeletePlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GenerateSessionInsightsSessionsRequest","title":"DevinApi.enterprise.GenerateSessionInsightsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetActiveUsersMetricsMetricsRequest","title":"DevinApi.enterprise.GetActiveUsersMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetAuditLogsAuditLogsRequest","title":"DevinApi.enterprise.GetAuditLogsAuditLogsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetBlueprintContentsSnapshotSetupRequest","title":"DevinApi.enterprise.GetBlueprintContentsSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetBlueprintEndpointSnapshotSetupRequest","title":"DevinApi.enterprise.GetBlueprintEndpointSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetCodeScanMetricsCodeScansRequest","title":"DevinApi.enterprise.GetCodeScanMetricsCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetCodeScanProfileCodeScansRequest","title":"DevinApi.enterprise.GetCodeScanProfileCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetConsumptionCyclesConsumptionRequest","title":"DevinApi.enterprise.GetConsumptionCyclesConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetConsumptionDailyConsumptionRequest","title":"DevinApi.enterprise.GetConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetDauMetricsMetricsRequest","title":"DevinApi.enterprise.GetDauMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetDevinAcuLimitsAcuLimitsRequest","title":"DevinApi.enterprise.GetDevinAcuLimitsAcuLimitsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetEnterpriseIdpGroupIdpGroupsRequest","title":"DevinApi.enterprise.GetEnterpriseIdpGroupIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetGitConnectionsGitConnectionsRequest","title":"DevinApi.enterprise.GetGitConnectionsGitConnectionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetGuardrailViolationsGuardrailViolationsRequest","title":"DevinApi.enterprise.GetGuardrailViolationsGuardrailViolationsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetHypervisorsHypervisorsRequest","title":"DevinApi.enterprise.GetHypervisorsHypervisorsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetMauMetricsMetricsRequest","title":"DevinApi.enterprise.GetMauMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetNoteNotesRequest","title":"DevinApi.enterprise.GetNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationAllowedTagsOrganizationTagsRequest","title":"DevinApi.enterprise.GetOrganizationAllowedTagsOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationDefaultTagOrganizationTagsRequest","title":"DevinApi.enterprise.GetOrganizationDefaultTagOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationGitPermissionsGitPermissionsRequest","title":"DevinApi.enterprise.GetOrganizationGitPermissionsGitPermissionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationIdpGroupIdpGroupsRequest","title":"DevinApi.enterprise.GetOrganizationIdpGroupIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationOrganizationsRequest","title":"DevinApi.enterprise.GetOrganizationOrganizationsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationsOrganizationsRequest","title":"DevinApi.enterprise.GetOrganizationsOrganizationsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrganizationUsageMetricsMetricsRequest","title":"DevinApi.enterprise.GetOrganizationUsageMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrgAuditLogsAuditLogsRequest","title":"DevinApi.enterprise.GetOrgAuditLogsAuditLogsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrgConsumptionDailyConsumptionRequest","title":"DevinApi.enterprise.GetOrgConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetOrgGuardrailViolationsGuardrailViolationsRequest","title":"DevinApi.enterprise.GetOrgGuardrailViolationsGuardrailViolationsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetPlaybookPlaybooksRequest","title":"DevinApi.enterprise.GetPlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetPrMetricsMetricsRequest","title":"DevinApi.enterprise.GetPrMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetPrReviewStatusPrReviewsRequest","title":"DevinApi.enterprise.GetPrReviewStatusPrReviewsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetRolesRolesRequest","title":"DevinApi.enterprise.GetRolesRolesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSearchMetricsMetricsRequest","title":"DevinApi.enterprise.GetSearchMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetServiceUserConsumptionDailyConsumptionRequest","title":"DevinApi.enterprise.GetServiceUserConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetServiceUserServiceUsersRequest","title":"DevinApi.enterprise.GetServiceUserServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionAttachmentsSessionsRequest","title":"DevinApi.enterprise.GetSessionAttachmentsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionConsumptionDailyConsumptionRequest","title":"DevinApi.enterprise.GetSessionConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionInsightsSessionsRequest","title":"DevinApi.enterprise.GetSessionInsightsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionMessagesSessionsRequest","title":"DevinApi.enterprise.GetSessionMessagesSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionMetricsMetricsRequest","title":"DevinApi.enterprise.GetSessionMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionsByCategoryMetricsRequest","title":"DevinApi.enterprise.GetSessionsByCategoryMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionSessionsRequest","title":"DevinApi.enterprise.GetSessionSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionsInsightsSessionsRequest","title":"DevinApi.enterprise.GetSessionsInsightsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionsSessionsRequest","title":"DevinApi.enterprise.GetSessionsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetSessionTagsSessionsRequest","title":"DevinApi.enterprise.GetSessionTagsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetUsageMetricsMetricsRequest","title":"DevinApi.enterprise.GetUsageMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetUserConsumptionDailyConsumptionRequest","title":"DevinApi.enterprise.GetUserConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetUserUsersRequest","title":"DevinApi.enterprise.GetUserUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GetWauMetricsMetricsRequest","title":"DevinApi.enterprise.GetWauMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/GitPermissionUpdateRequest","title":"DevinApi.enterprise.GitPermissionUpdateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/IdpGroupsBulkCreateRequest","title":"DevinApi.enterprise.IdpGroupsBulkCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/IpAccessListAddRequest","title":"DevinApi.enterprise.IpAccessListAddRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/IpAccessListReplaceRequest","title":"DevinApi.enterprise.IpAccessListReplaceRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListAccountIdpGroupsIdpGroupsRequest","title":"DevinApi.enterprise.ListAccountIdpGroupsIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListBlueprintFilesSnapshotSetupRequest","title":"DevinApi.enterprise.ListBlueprintFilesSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListCodeScanFindingsCodeScansRequest","title":"DevinApi.enterprise.ListCodeScanFindingsCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListCodeScanProfilesCodeScansRequest","title":"DevinApi.enterprise.ListCodeScanProfilesCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListCodeScansCodeScansRequest","title":"DevinApi.enterprise.ListCodeScansCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListEnterpriseIdpGroupsIdpGroupsRequest","title":"DevinApi.enterprise.ListEnterpriseIdpGroupsIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListGitConnectionRepositoriesGitConnectionsRequest","title":"DevinApi.enterprise.ListGitConnectionRepositoriesGitConnectionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListIdpUsersUsersRequest","title":"DevinApi.enterprise.ListIdpUsersUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListNotesNotesRequest","title":"DevinApi.enterprise.ListNotesNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListOrganizationIdpGroupsIdpGroupsRequest","title":"DevinApi.enterprise.ListOrganizationIdpGroupsIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListOrganizationIdpUsersUsersRequest","title":"DevinApi.enterprise.ListOrganizationIdpUsersUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListOrganizationServiceUsersServiceUsersRequest","title":"DevinApi.enterprise.ListOrganizationServiceUsersServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListOrganizationUsersUsersRequest","title":"DevinApi.enterprise.ListOrganizationUsersUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListPlaybooksPlaybooksRequest","title":"DevinApi.enterprise.ListPlaybooksPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListServiceUserApiKeysServiceUserApiKeysRequest","title":"DevinApi.enterprise.ListServiceUserApiKeysServiceUserApiKeysRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListServiceUsersServiceUsersRequest","title":"DevinApi.enterprise.ListServiceUsersServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ListUsersUsersRequest","title":"DevinApi.enterprise.ListUsersUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/OrganizationCreateRequest","title":"DevinApi.enterprise.OrganizationCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/OrganizationUpdateRequest","title":"DevinApi.enterprise.OrganizationUpdateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/PostSessionMessageSessionsRequest","title":"DevinApi.enterprise.PostSessionMessageSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemediateCodeScanFindingCodeScansRequest","title":"DevinApi.enterprise.RemediateCodeScanFindingCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveEnterpriseIdpGroupIdpGroupsRequest","title":"DevinApi.enterprise.RemoveEnterpriseIdpGroupIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveOrganizationAllowedTagOrganizationTagsRequest","title":"DevinApi.enterprise.RemoveOrganizationAllowedTagOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveOrganizationIdpGroupIdpGroupsRequest","title":"DevinApi.enterprise.RemoveOrganizationIdpGroupIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveOrganizationServiceUserServiceUsersRequest","title":"DevinApi.enterprise.RemoveOrganizationServiceUserServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveOrganizationUserUsersRequest","title":"DevinApi.enterprise.RemoveOrganizationUserUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveServiceUserServiceUsersRequest","title":"DevinApi.enterprise.RemoveServiceUserServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RemoveUserUsersRequest","title":"DevinApi.enterprise.RemoveUserUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ReplaceOrganizationAllowedTagsOrganizationTagsRequest","title":"DevinApi.enterprise.ReplaceOrganizationAllowedTagsOrganizationTagsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ReplaceOrganizationGitPermissionsGitPermissionsRequest","title":"DevinApi.enterprise.ReplaceOrganizationGitPermissionsGitPermissionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/ReplaceSessionTagsSessionsRequest","title":"DevinApi.enterprise.ReplaceSessionTagsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RevokeServiceUserApiKeyServiceUserApiKeysRequest","title":"DevinApi.enterprise.RevokeServiceUserApiKeyServiceUserApiKeysRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/RotateApiKeyRequest","title":"DevinApi.enterprise.RotateApiKeyRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/StartCodeScanOrganizationsRequest","title":"DevinApi.enterprise.StartCodeScanOrganizationsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateAcuLimitRequest","title":"DevinApi.enterprise.UpdateAcuLimitRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateBlueprintContentsBody","title":"DevinApi.enterprise.UpdateBlueprintContentsBody","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateEnterpriseIdpGroupRoleIdpGroupsRequest","title":"DevinApi.enterprise.UpdateEnterpriseIdpGroupRoleIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateNoteNotesRequest","title":"DevinApi.enterprise.UpdateNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateOrganizationIdpGroupRoleIdpGroupsRequest","title":"DevinApi.enterprise.UpdateOrganizationIdpGroupRoleIdpGroupsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateOrganizationServiceUserRoleServiceUsersRequest","title":"DevinApi.enterprise.UpdateOrganizationServiceUserRoleServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateOrganizationUserRoleUsersRequest","title":"DevinApi.enterprise.UpdateOrganizationUserRoleUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdatePlaybookPlaybooksRequest","title":"DevinApi.enterprise.UpdatePlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateServiceUserRoleServiceUsersRequest","title":"DevinApi.enterprise.UpdateServiceUserRoleServiceUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UpdateUserRoleUsersRequest","title":"DevinApi.enterprise.UpdateUserRoleUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/enterprise/interfaces/UserBulkCreateRequest","title":"DevinApi.enterprise.UserBulkCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/FolderSummary","title":"DevinApi.FolderSummary","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/FolderTreeResponse","title":"DevinApi.FolderTreeResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GenerateSessionInsightsSessionsRequest","title":"DevinApi.GenerateSessionInsightsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetActiveUsersMetricsMetricsRequest","title":"DevinApi.GetActiveUsersMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetCodeScanMetricsCodeScansRequest","title":"DevinApi.GetCodeScanMetricsCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetCodeScanProfileCodeScansRequest","title":"DevinApi.GetCodeScanProfileCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetConsumptionDailyConsumptionRequest","title":"DevinApi.GetConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetDauMetricsMetricsRequest","title":"DevinApi.GetDauMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetMauMetricsMetricsRequest","title":"DevinApi.GetMauMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetNoteNotesRequest","title":"DevinApi.GetNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetOrganizationUserUsersRequest","title":"DevinApi.GetOrganizationUserUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetOrgBlueprintContentsSnapshotSetupRequest","title":"DevinApi.GetOrgBlueprintContentsSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetOrgBlueprintSnapshotSetupRequest","title":"DevinApi.GetOrgBlueprintSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetOrgBuildLogsSnapshotSetupRequest","title":"DevinApi.GetOrgBuildLogsSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetOrgBuildSnapshotSetupRequest","title":"DevinApi.GetOrgBuildSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetPlaybookPlaybooksRequest","title":"DevinApi.GetPlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetPrMetricsMetricsRequest","title":"DevinApi.GetPrMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetPrReviewStatusPrReviewsRequest","title":"DevinApi.GetPrReviewStatusPrReviewsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetRepositoryIndexingStatusRepositoriesRequest","title":"DevinApi.GetRepositoryIndexingStatusRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetScheduleSchedulesRequest","title":"DevinApi.GetScheduleSchedulesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSearchMetricsMetricsRequest","title":"DevinApi.GetSearchMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/GetSelfResponse/interfaces/DevinBrain","title":"DevinApi.GetSelfResponse.DevinBrain","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/GetSelfResponse/interfaces/PatUser","title":"DevinApi.GetSelfResponse.PatUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/GetSelfResponse/interfaces/ServiceUser","title":"DevinApi.GetSelfResponse.ServiceUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/GetSelfResponse/interfaces/WindsurfSession","title":"DevinApi.GetSelfResponse.WindsurfSession","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetServiceUserConsumptionDailyConsumptionRequest","title":"DevinApi.GetServiceUserConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionAttachmentsSessionsRequest","title":"DevinApi.GetSessionAttachmentsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionConsumptionDailyConsumptionRequest","title":"DevinApi.GetSessionConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionInsightsSessionsRequest","title":"DevinApi.GetSessionInsightsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionMessagesSessionsRequest","title":"DevinApi.GetSessionMessagesSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionMetricsMetricsRequest","title":"DevinApi.GetSessionMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionSessionsRequest","title":"DevinApi.GetSessionSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionsInsightsSessionsRequest","title":"DevinApi.GetSessionsInsightsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionsSessionsRequest","title":"DevinApi.GetSessionsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetSessionTagsSessionsRequest","title":"DevinApi.GetSessionTagsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetUsageMetricsMetricsRequest","title":"DevinApi.GetUsageMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetUserConsumptionDailyConsumptionRequest","title":"DevinApi.GetUserConsumptionDailyConsumptionRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GetWauMetricsMetricsRequest","title":"DevinApi.GetWauMetricsMetricsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GitConnectionRepositoryResponse","title":"DevinApi.GitConnectionRepositoryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GitConnectionResponse","title":"DevinApi.GitConnectionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GitPermissionBulkCreateRequest","title":"DevinApi.GitPermissionBulkCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GitPermissionCreateRequest","title":"DevinApi.GitPermissionCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GitPermissionResponse","title":"DevinApi.GitPermissionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/GuardrailViolationResponse","title":"DevinApi.GuardrailViolationResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/HypervisorResponse","title":"DevinApi.HypervisorResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IdpGroup","title":"DevinApi.IdpGroup","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IdpGroupResponse","title":"DevinApi.IdpGroupResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IdpGroupUpdateRoleRequest","title":"DevinApi.IdpGroupUpdateRoleRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IdpGroupUser","title":"DevinApi.IdpGroupUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IdpRoleAssignment","title":"DevinApi.IdpRoleAssignment","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IndexRepositoryRequest","title":"DevinApi.IndexRepositoryRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IndexSingleRepositoryRepositoriesRequest","title":"DevinApi.IndexSingleRepositoryRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/IpAccessListResponse","title":"DevinApi.IpAccessListResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/KnowledgeNoteCreateRequest","title":"DevinApi.KnowledgeNoteCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/KnowledgeNoteResponse","title":"DevinApi.KnowledgeNoteResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListCodeScanFindingsCodeScansRequest","title":"DevinApi.ListCodeScanFindingsCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListCodeScanProfilesCodeScansRequest","title":"DevinApi.ListCodeScanProfilesCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListCodeScansCodeScansRequest","title":"DevinApi.ListCodeScansCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListFoldersNotesRequest","title":"DevinApi.ListFoldersNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListIndexedRepositoriesRepositoriesRequest","title":"DevinApi.ListIndexedRepositoriesRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListNotesNotesRequest","title":"DevinApi.ListNotesNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListOrganizationIdpUsersUsersRequest","title":"DevinApi.ListOrganizationIdpUsersUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListOrganizationUsersUsersRequest","title":"DevinApi.ListOrganizationUsersUsersRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListOrgBlueprintFilesSnapshotSetupRequest","title":"DevinApi.ListOrgBlueprintFilesSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListOrgBlueprintsSnapshotSetupRequest","title":"DevinApi.ListOrgBlueprintsSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListOrgBuildsSnapshotSetupRequest","title":"DevinApi.ListOrgBuildsSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListPlaybooksPlaybooksRequest","title":"DevinApi.ListPlaybooksPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListRepositoriesRepositoriesRequest","title":"DevinApi.ListRepositoriesRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListSchedulesSchedulesRequest","title":"DevinApi.ListSchedulesSchedulesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ListSecretsSecretsRequest","title":"DevinApi.ListSecretsSecretsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/OrganizationResponse","title":"DevinApi.OrganizationResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/OrgGroupConfig","title":"DevinApi.OrgGroupConfig","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/OrgGroupsConfig","title":"DevinApi.OrgGroupsConfig","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseAcuLimitResponse","title":"DevinApi.PaginatedResponseAcuLimitResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseApiKeyResponse","title":"DevinApi.PaginatedResponseApiKeyResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseAuditLogResponse","title":"DevinApi.PaginatedResponseAuditLogResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseBuild","title":"DevinApi.PaginatedResponseBuild","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseCodeScanFindingResponse","title":"DevinApi.PaginatedResponseCodeScanFindingResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseCodeScanProfileSummaryResponse","title":"DevinApi.PaginatedResponseCodeScanProfileSummaryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseCodeScanResponse","title":"DevinApi.PaginatedResponseCodeScanResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseConsumptionCycle","title":"DevinApi.PaginatedResponseConsumptionCycle","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseGitConnectionRepositoryResponse","title":"DevinApi.PaginatedResponseGitConnectionRepositoryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseGitConnectionResponse","title":"DevinApi.PaginatedResponseGitConnectionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseGitPermissionResponse","title":"DevinApi.PaginatedResponseGitPermissionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseGuardrailViolationResponse","title":"DevinApi.PaginatedResponseGuardrailViolationResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseHypervisorResponse","title":"DevinApi.PaginatedResponseHypervisorResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseIdpGroup","title":"DevinApi.PaginatedResponseIdpGroup","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseIdpGroupResponse","title":"DevinApi.PaginatedResponseIdpGroupResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseIdpGroupUser","title":"DevinApi.PaginatedResponseIdpGroupUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseKnowledgeNoteResponse","title":"DevinApi.PaginatedResponseKnowledgeNoteResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseOrganizationResponse","title":"DevinApi.PaginatedResponseOrganizationResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponsePlaybookResponse","title":"DevinApi.PaginatedResponsePlaybookResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseRepositoryIndexingResponse","title":"DevinApi.PaginatedResponseRepositoryIndexingResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseRepositoryResponse","title":"DevinApi.PaginatedResponseRepositoryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseRole","title":"DevinApi.PaginatedResponseRole","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseScheduleResponse","title":"DevinApi.PaginatedResponseScheduleResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseSecretResponse","title":"DevinApi.PaginatedResponseSecretResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseServiceUser","title":"DevinApi.PaginatedResponseServiceUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseSessionInsightsResponse","title":"DevinApi.PaginatedResponseSessionInsightsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseSessionMessage","title":"DevinApi.PaginatedResponseSessionMessage","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseSessionResponse","title":"DevinApi.PaginatedResponseSessionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PaginatedResponseUser","title":"DevinApi.PaginatedResponseUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PatUserSelf","title":"DevinApi.PatUserSelf","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PinBuildBody","title":"DevinApi.PinBuildBody","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PlaybookCreateRequest","title":"DevinApi.PlaybookCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PlaybookInfo","title":"DevinApi.PlaybookInfo","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PlaybookResponse","title":"DevinApi.PlaybookResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PostMessageSessionsRequest","title":"DevinApi.PostMessageSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PresignedDownload","title":"DevinApi.PresignedDownload","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PrMetricsResponse","title":"DevinApi.PrMetricsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ProblemDetail","title":"DevinApi.ProblemDetail","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PrReviewCreateRequest","title":"DevinApi.PrReviewCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/PrReviewResponse","title":"DevinApi.PrReviewResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/QueueResponse","title":"DevinApi.QueueResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RemediateCodeScanFindingCodeScansRequest","title":"DevinApi.RemediateCodeScanFindingCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RemediateFindingResponse","title":"DevinApi.RemediateFindingResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RemoveBranchRepositoriesRequest","title":"DevinApi.RemoveBranchRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RemoveRepositoriesRequest","title":"DevinApi.RemoveRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RemoveSingleRepositoryFromIndexingRepositoriesRequest","title":"DevinApi.RemoveSingleRepositoryFromIndexingRepositoriesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ReplaceSessionTagsSessionsRequest","title":"DevinApi.ReplaceSessionTagsSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RepoIndexingStatusResponse","title":"DevinApi.RepoIndexingStatusResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RepoIndexJobResponse","title":"DevinApi.RepoIndexJobResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RepositoryIndexingItem","title":"DevinApi.RepositoryIndexingItem","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RepositoryIndexingResponse","title":"DevinApi.RepositoryIndexingResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RepositoryResponse","title":"DevinApi.RepositoryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/Role","title":"DevinApi.Role","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/RoleAssignment","title":"DevinApi.RoleAssignment","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ScheduleCreateRequest","title":"DevinApi.ScheduleCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ScheduleResponse","title":"DevinApi.ScheduleResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ScheduleUpdateRequest","title":"DevinApi.ScheduleUpdateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SearchMetricsResponse","title":"DevinApi.SearchMetricsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SecretCreateRequest","title":"DevinApi.SecretCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SecretResponse","title":"DevinApi.SecretResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ServiceUser","title":"DevinApi.ServiceUser","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ServiceUserSelf","title":"DevinApi.ServiceUserSelf","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/ServiceUserUpdateRoleRequest","title":"DevinApi.ServiceUserUpdateRoleRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionAttachment","title":"DevinApi.SessionAttachment","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionCountsByOrigin","title":"DevinApi.SessionCountsByOrigin","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionCountsBySize","title":"DevinApi.SessionCountsBySize","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionCreateRequest","title":"DevinApi.SessionCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsActionItem","title":"DevinApi.SessionInsightsActionItem","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsAnalysis","title":"DevinApi.SessionInsightsAnalysis","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsClassification","title":"DevinApi.SessionInsightsClassification","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsFeedbackItem","title":"DevinApi.SessionInsightsFeedbackItem","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsGenerateResponse","title":"DevinApi.SessionInsightsGenerateResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsIssue","title":"DevinApi.SessionInsightsIssue","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsNoteUsage","title":"DevinApi.SessionInsightsNoteUsage","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsNoteUsageItem","title":"DevinApi.SessionInsightsNoteUsageItem","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsResponse","title":"DevinApi.SessionInsightsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsSuggestedPrompt","title":"DevinApi.SessionInsightsSuggestedPrompt","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionInsightsTimelineEvent","title":"DevinApi.SessionInsightsTimelineEvent","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionMessage","title":"DevinApi.SessionMessage","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionMessageCreateRequest","title":"DevinApi.SessionMessageCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionMetricsResponse","title":"DevinApi.SessionMetricsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionPullRequest","title":"DevinApi.SessionPullRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionResponse","title":"DevinApi.SessionResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionsByCategoryResponse","title":"DevinApi.SessionsByCategoryResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionSecretInput","title":"DevinApi.SessionSecretInput","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionsQueryParams","title":"DevinApi.SessionsQueryParams","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionTagsResponse","title":"DevinApi.SessionTagsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SessionTagsUpdateRequest","title":"DevinApi.SessionTagsUpdateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/StartCodeScanCodeScansRequest","title":"DevinApi.StartCodeScanCodeScansRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/SubcategoryMetrics","title":"DevinApi.SubcategoryMetrics","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/TagsCreateRequest","title":"DevinApi.TagsCreateRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/TagsResponse","title":"DevinApi.TagsResponse","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/TerminateSessionSessionsRequest","title":"DevinApi.TerminateSessionSessionsRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/TriggerBuildBody","title":"DevinApi.TriggerBuildBody","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UnpinOrgBuildSnapshotSetupRequest","title":"DevinApi.UnpinOrgBuildSnapshotSetupRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UpdateNoteNotesRequest","title":"DevinApi.UpdateNoteNotesRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UpdateOrgBlueprintBody","title":"DevinApi.UpdateOrgBlueprintBody","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UpdatePlaybookPlaybooksRequest","title":"DevinApi.UpdatePlaybookPlaybooksRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UsageMetrics","title":"DevinApi.UsageMetrics","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/User","title":"DevinApi.User","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UserUpdateRoleRequest","title":"DevinApi.UserUpdateRoleRequest","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/UserWithIdpRoles","title":"DevinApi.UserWithIdpRoles","tag":"INTERFACE"},{"href":"/sdk/api/DevinApi/interfaces/WindsurfSessionUserSelf","title":"DevinApi.WindsurfSessionUserSelf","tag":"INTERFACE"},{"href":"/sdk/api/DevinApiClient/interfaces/RequestOptions","title":"DevinApiClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseAcuLimitsClient/interfaces/RequestOptions","title":"EnterpriseAcuLimitsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseAuditLogsClient/interfaces/RequestOptions","title":"EnterpriseAuditLogsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseCodeScansClient/interfaces/RequestOptions","title":"EnterpriseCodeScansClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseConsumptionClient/interfaces/RequestOptions","title":"EnterpriseConsumptionClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseGitConnectionsClient/interfaces/RequestOptions","title":"EnterpriseGitConnectionsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseGitPermissionsClient/interfaces/RequestOptions","title":"EnterpriseGitPermissionsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseGuardrailViolationsClient/interfaces/RequestOptions","title":"EnterpriseGuardrailViolationsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseHypervisorsClient/interfaces/RequestOptions","title":"EnterpriseHypervisorsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseIdpGroupsClient/interfaces/RequestOptions","title":"EnterpriseIdpGroupsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseIpAccessListClient/interfaces/RequestOptions","title":"EnterpriseIpAccessListClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseMetricsClient/interfaces/RequestOptions","title":"EnterpriseMetricsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseNotesClient/interfaces/RequestOptions","title":"EnterpriseNotesClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseOrganizationsClient/interfaces/RequestOptions","title":"EnterpriseOrganizationsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseOrganizationTagsClient/interfaces/RequestOptions","title":"EnterpriseOrganizationTagsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseOrgGroupsClient/interfaces/RequestOptions","title":"EnterpriseOrgGroupsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterprisePlaybooksClient/interfaces/RequestOptions","title":"EnterprisePlaybooksClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterprisePrReviewsClient/interfaces/RequestOptions","title":"EnterprisePrReviewsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseQueueClient/interfaces/RequestOptions","title":"EnterpriseQueueClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseRolesClient/interfaces/RequestOptions","title":"EnterpriseRolesClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseServiceUserApiKeysClient/interfaces/RequestOptions","title":"EnterpriseServiceUserApiKeysClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseServiceUsersClient/interfaces/RequestOptions","title":"EnterpriseServiceUsersClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseSessionsClient/interfaces/RequestOptions","title":"EnterpriseSessionsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseSnapshotSetupClient/interfaces/RequestOptions","title":"EnterpriseSnapshotSetupClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/EnterpriseUsersClient/interfaces/RequestOptions","title":"EnterpriseUsersClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/MetricsClient/interfaces/RequestOptions","title":"MetricsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/NotesClient/interfaces/RequestOptions","title":"NotesClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/PlaybooksClient/interfaces/RequestOptions","title":"PlaybooksClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/PrReviewsClient/interfaces/RequestOptions","title":"PrReviewsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/RepositoriesClient/interfaces/RequestOptions","title":"RepositoriesClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/SchedulesClient/interfaces/RequestOptions","title":"SchedulesClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/SecretsClient/interfaces/RequestOptions","title":"SecretsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/SessionsClient/interfaces/RequestOptions","title":"SessionsClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/SnapshotSetupClient/interfaces/RequestOptions","title":"SnapshotSetupClient.RequestOptions","tag":"INTERFACE"},{"href":"/sdk/api/UsersClient/interfaces/RequestOptions","title":"UsersClient.RequestOptions","tag":"INTERFACE"}]},{"group":"Type Aliases","pages":[{"href":"/sdk/api/AttachmentsClient/types/Options","title":"AttachmentsClient.Options","tag":"TYPE"},{"href":"/sdk/api/types/BaseClientOptions","title":"BaseClientOptions","tag":"TYPE"},{"href":"/sdk/api/CodeScansClient/types/Options","title":"CodeScansClient.Options","tag":"TYPE"},{"href":"/sdk/api/ConsumptionClient/types/Options","title":"ConsumptionClient.Options","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/ActiveUserMetricsListResponse","title":"DevinApi.ActiveUserMetricsListResponse","tag":"TYPE"},{"href":"/sdk/api/DevinApi/AcuLimitResponse/types/Scope","title":"DevinApi.AcuLimitResponse.Scope","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/AuditLogAction","title":"DevinApi.AuditLogAction","tag":"TYPE"},{"href":"/sdk/api/DevinApi/Blueprint/types/Type","title":"DevinApi.Blueprint.Type","tag":"TYPE"},{"href":"/sdk/api/DevinApi/Build/types/Status","title":"DevinApi.Build.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/Build/types/Trigger","title":"DevinApi.Build.Trigger","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanFindingResponse/types/Severity","title":"DevinApi.CodeScanFindingResponse.Severity","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanFindingResponse/types/Status","title":"DevinApi.CodeScanFindingResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanProfileDetailResponse/types/Mode","title":"DevinApi.CodeScanProfileDetailResponse.Mode","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanProfileDetailResponse/types/ScanType","title":"DevinApi.CodeScanProfileDetailResponse.ScanType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanProfileDetailResponse/types/Visibility","title":"DevinApi.CodeScanProfileDetailResponse.Visibility","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanProfileSummaryResponse/types/Mode","title":"DevinApi.CodeScanProfileSummaryResponse.Mode","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanProfileSummaryResponse/types/ScanType","title":"DevinApi.CodeScanProfileSummaryResponse.ScanType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanProfileSummaryResponse/types/Visibility","title":"DevinApi.CodeScanProfileSummaryResponse.Visibility","tag":"TYPE"},{"href":"/sdk/api/DevinApi/CodeScanResponse/types/Status","title":"DevinApi.CodeScanResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetAuditLogsAuditLogsRequestOrder","title":"DevinApi.enterprise.GetAuditLogsAuditLogsRequestOrder","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetGuardrailViolationsGuardrailViolationsRequestOrder","title":"DevinApi.enterprise.GetGuardrailViolationsGuardrailViolationsRequestOrder","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetHypervisorsHypervisorsRequestStatus","title":"DevinApi.enterprise.GetHypervisorsHypervisorsRequestStatus","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetOrgAuditLogsAuditLogsRequestOrder","title":"DevinApi.enterprise.GetOrgAuditLogsAuditLogsRequestOrder","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetOrgGuardrailViolationsGuardrailViolationsRequestOrder","title":"DevinApi.enterprise.GetOrgGuardrailViolationsGuardrailViolationsRequestOrder","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetSessionsInsightsSessionsRequestCategory","title":"DevinApi.enterprise.GetSessionsInsightsSessionsRequestCategory","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetSessionsInsightsSessionsRequestOriginsItem","title":"DevinApi.enterprise.GetSessionsInsightsSessionsRequestOriginsItem","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetSessionsSessionsRequestCategory","title":"DevinApi.enterprise.GetSessionsSessionsRequestCategory","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/GetSessionsSessionsRequestOriginsItem","title":"DevinApi.enterprise.GetSessionsSessionsRequestOriginsItem","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/ListCodeScanFindingsCodeScansRequestSeverityItem","title":"DevinApi.enterprise.ListCodeScanFindingsCodeScansRequestSeverityItem","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/ListCodeScanFindingsCodeScansRequestStatusItem","title":"DevinApi.enterprise.ListCodeScanFindingsCodeScansRequestStatusItem","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/ListNotesNotesRequestAccessType","title":"DevinApi.enterprise.ListNotesNotesRequestAccessType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/enterprise/types/ListServiceUserApiKeysServiceUserApiKeysRequestStatus","title":"DevinApi.enterprise.ListServiceUserApiKeysServiceUserApiKeysRequestStatus","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/GetSelfResponse","title":"DevinApi.GetSelfResponse","tag":"TYPE"},{"href":"/sdk/api/DevinApi/GitConnectionResponse/types/GitProviderType","title":"DevinApi.GitConnectionResponse.GitProviderType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/KnowledgeNoteResponse/types/AccessType","title":"DevinApi.KnowledgeNoteResponse.AccessType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/ListCodeScanFindingsCodeScansRequestSeverityItem","title":"DevinApi.ListCodeScanFindingsCodeScansRequestSeverityItem","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/ListCodeScanFindingsCodeScansRequestStatusItem","title":"DevinApi.ListCodeScanFindingsCodeScansRequestStatusItem","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/ListOrgBuildsSnapshotSetupRequestStatus","title":"DevinApi.ListOrgBuildsSnapshotSetupRequestStatus","tag":"TYPE"},{"href":"/sdk/api/DevinApi/PlaybookResponse/types/AccessType","title":"DevinApi.PlaybookResponse.AccessType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/PrReviewResponse/types/Status","title":"DevinApi.PrReviewResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/QueueResponse/types/Status","title":"DevinApi.QueueResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/RepoIndexJobResponse/types/Status","title":"DevinApi.RepoIndexJobResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/Role/types/RoleType","title":"DevinApi.Role.RoleType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleCreateRequest/types/Agent","title":"DevinApi.ScheduleCreateRequest.Agent","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleCreateRequest/types/NotifyOn","title":"DevinApi.ScheduleCreateRequest.NotifyOn","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleCreateRequest/types/ScheduleType","title":"DevinApi.ScheduleCreateRequest.ScheduleType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleResponse/types/Agent","title":"DevinApi.ScheduleResponse.Agent","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleResponse/types/NotifyOn","title":"DevinApi.ScheduleResponse.NotifyOn","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleResponse/types/ScheduleType","title":"DevinApi.ScheduleResponse.ScheduleType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleUpdateRequest/types/Agent","title":"DevinApi.ScheduleUpdateRequest.Agent","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleUpdateRequest/types/NotifyOn","title":"DevinApi.ScheduleUpdateRequest.NotifyOn","tag":"TYPE"},{"href":"/sdk/api/DevinApi/ScheduleUpdateRequest/types/ScheduleType","title":"DevinApi.ScheduleUpdateRequest.ScheduleType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SecretCreateRequest/types/Type","title":"DevinApi.SecretCreateRequest.Type","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SecretResponse/types/AccessType","title":"DevinApi.SecretResponse.AccessType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SecretResponse/types/SecretType","title":"DevinApi.SecretResponse.SecretType","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionAttachment/types/Source","title":"DevinApi.SessionAttachment.Source","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionCreateRequest/types/DevinMode","title":"DevinApi.SessionCreateRequest.DevinMode","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionInsightsActionItem/types/Type","title":"DevinApi.SessionInsightsActionItem.Type","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/types/Category","title":"DevinApi.SessionInsightsResponse.Category","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/types/Origin","title":"DevinApi.SessionInsightsResponse.Origin","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/types/SessionSize","title":"DevinApi.SessionInsightsResponse.SessionSize","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/types/Status","title":"DevinApi.SessionInsightsResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/types/StatusDetail","title":"DevinApi.SessionInsightsResponse.StatusDetail","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionMessage/types/Source","title":"DevinApi.SessionMessage.Source","tag":"TYPE"},{"href":"/sdk/api/DevinApi/types/SessionPurpose","title":"DevinApi.SessionPurpose","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionResponse/types/Category","title":"DevinApi.SessionResponse.Category","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionResponse/types/Origin","title":"DevinApi.SessionResponse.Origin","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionResponse/types/Status","title":"DevinApi.SessionResponse.Status","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionResponse/types/StatusDetail","title":"DevinApi.SessionResponse.StatusDetail","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionsQueryParams/types/Category","title":"DevinApi.SessionsQueryParams.Category","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionsQueryParams/types/Origins","title":"DevinApi.SessionsQueryParams.Origins","tag":"TYPE"},{"href":"/sdk/api/DevinApi/SessionsQueryParams/Origins/types/Item","title":"DevinApi.SessionsQueryParams.Origins.Item","tag":"TYPE"},{"href":"/sdk/api/DevinApiClient/types/Options","title":"DevinApiClient.Options","tag":"TYPE"},{"href":"/sdk/api/types/DevinApiEnvironment","title":"DevinApiEnvironment","tag":"TYPE"},{"href":"/sdk/api/EnterpriseAcuLimitsClient/types/Options","title":"EnterpriseAcuLimitsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseAuditLogsClient/types/Options","title":"EnterpriseAuditLogsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseClient/types/Options","title":"EnterpriseClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseCodeScansClient/types/Options","title":"EnterpriseCodeScansClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseConsumptionClient/types/Options","title":"EnterpriseConsumptionClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseGitConnectionsClient/types/Options","title":"EnterpriseGitConnectionsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseGitPermissionsClient/types/Options","title":"EnterpriseGitPermissionsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseGuardrailViolationsClient/types/Options","title":"EnterpriseGuardrailViolationsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseHypervisorsClient/types/Options","title":"EnterpriseHypervisorsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseIdpGroupsClient/types/Options","title":"EnterpriseIdpGroupsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseIpAccessListClient/types/Options","title":"EnterpriseIpAccessListClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseMetricsClient/types/Options","title":"EnterpriseMetricsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseNotesClient/types/Options","title":"EnterpriseNotesClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseOrganizationsClient/types/Options","title":"EnterpriseOrganizationsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseOrganizationTagsClient/types/Options","title":"EnterpriseOrganizationTagsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseOrgGroupsClient/types/Options","title":"EnterpriseOrgGroupsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterprisePlaybooksClient/types/Options","title":"EnterprisePlaybooksClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterprisePrReviewsClient/types/Options","title":"EnterprisePrReviewsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseQueueClient/types/Options","title":"EnterpriseQueueClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseRolesClient/types/Options","title":"EnterpriseRolesClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseServiceUserApiKeysClient/types/Options","title":"EnterpriseServiceUserApiKeysClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseServiceUsersClient/types/Options","title":"EnterpriseServiceUsersClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseSessionsClient/types/Options","title":"EnterpriseSessionsClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseSnapshotSetupClient/types/Options","title":"EnterpriseSnapshotSetupClient.Options","tag":"TYPE"},{"href":"/sdk/api/EnterpriseUsersClient/types/Options","title":"EnterpriseUsersClient.Options","tag":"TYPE"},{"href":"/sdk/api/MetricsClient/types/Options","title":"MetricsClient.Options","tag":"TYPE"},{"href":"/sdk/api/NotesClient/types/Options","title":"NotesClient.Options","tag":"TYPE"},{"href":"/sdk/api/PlaybooksClient/types/Options","title":"PlaybooksClient.Options","tag":"TYPE"},{"href":"/sdk/api/PrReviewsClient/types/Options","title":"PrReviewsClient.Options","tag":"TYPE"},{"href":"/sdk/api/RepositoriesClient/types/Options","title":"RepositoriesClient.Options","tag":"TYPE"},{"href":"/sdk/api/SchedulesClient/types/Options","title":"SchedulesClient.Options","tag":"TYPE"},{"href":"/sdk/api/SecretsClient/types/Options","title":"SecretsClient.Options","tag":"TYPE"},{"href":"/sdk/api/SessionsClient/types/Options","title":"SessionsClient.Options","tag":"TYPE"},{"href":"/sdk/api/SnapshotSetupClient/types/Options","title":"SnapshotSetupClient.Options","tag":"TYPE"},{"href":"/sdk/api/UsersClient/types/Options","title":"UsersClient.Options","tag":"TYPE"}]},{"group":"Variables","pages":[{"href":"/sdk/api/DevinApi/AcuLimitResponse/variables/Scope","title":"DevinApi.AcuLimitResponse.Scope","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/variables/AuditLogAction","title":"DevinApi.AuditLogAction","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/Blueprint/variables/Type","title":"DevinApi.Blueprint.Type","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/Build/variables/Status","title":"DevinApi.Build.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/Build/variables/Trigger","title":"DevinApi.Build.Trigger","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanFindingResponse/variables/Severity","title":"DevinApi.CodeScanFindingResponse.Severity","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanFindingResponse/variables/Status","title":"DevinApi.CodeScanFindingResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanProfileDetailResponse/variables/Mode","title":"DevinApi.CodeScanProfileDetailResponse.Mode","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanProfileDetailResponse/variables/ScanType","title":"DevinApi.CodeScanProfileDetailResponse.ScanType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanProfileDetailResponse/variables/Visibility","title":"DevinApi.CodeScanProfileDetailResponse.Visibility","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanProfileSummaryResponse/variables/Mode","title":"DevinApi.CodeScanProfileSummaryResponse.Mode","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanProfileSummaryResponse/variables/ScanType","title":"DevinApi.CodeScanProfileSummaryResponse.ScanType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanProfileSummaryResponse/variables/Visibility","title":"DevinApi.CodeScanProfileSummaryResponse.Visibility","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/CodeScanResponse/variables/Status","title":"DevinApi.CodeScanResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetAuditLogsAuditLogsRequestOrder","title":"DevinApi.enterprise.GetAuditLogsAuditLogsRequestOrder","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetGuardrailViolationsGuardrailViolationsRequestOrder","title":"DevinApi.enterprise.GetGuardrailViolationsGuardrailViolationsRequestOrder","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetHypervisorsHypervisorsRequestStatus","title":"DevinApi.enterprise.GetHypervisorsHypervisorsRequestStatus","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetOrgAuditLogsAuditLogsRequestOrder","title":"DevinApi.enterprise.GetOrgAuditLogsAuditLogsRequestOrder","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetOrgGuardrailViolationsGuardrailViolationsRequestOrder","title":"DevinApi.enterprise.GetOrgGuardrailViolationsGuardrailViolationsRequestOrder","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetSessionsInsightsSessionsRequestCategory","title":"DevinApi.enterprise.GetSessionsInsightsSessionsRequestCategory","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetSessionsInsightsSessionsRequestOriginsItem","title":"DevinApi.enterprise.GetSessionsInsightsSessionsRequestOriginsItem","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetSessionsSessionsRequestCategory","title":"DevinApi.enterprise.GetSessionsSessionsRequestCategory","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/GetSessionsSessionsRequestOriginsItem","title":"DevinApi.enterprise.GetSessionsSessionsRequestOriginsItem","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/ListCodeScanFindingsCodeScansRequestSeverityItem","title":"DevinApi.enterprise.ListCodeScanFindingsCodeScansRequestSeverityItem","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/ListCodeScanFindingsCodeScansRequestStatusItem","title":"DevinApi.enterprise.ListCodeScanFindingsCodeScansRequestStatusItem","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/ListNotesNotesRequestAccessType","title":"DevinApi.enterprise.ListNotesNotesRequestAccessType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/enterprise/variables/ListServiceUserApiKeysServiceUserApiKeysRequestStatus","title":"DevinApi.enterprise.ListServiceUserApiKeysServiceUserApiKeysRequestStatus","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/GitConnectionResponse/variables/GitProviderType","title":"DevinApi.GitConnectionResponse.GitProviderType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/KnowledgeNoteResponse/variables/AccessType","title":"DevinApi.KnowledgeNoteResponse.AccessType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/variables/ListCodeScanFindingsCodeScansRequestSeverityItem","title":"DevinApi.ListCodeScanFindingsCodeScansRequestSeverityItem","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/variables/ListCodeScanFindingsCodeScansRequestStatusItem","title":"DevinApi.ListCodeScanFindingsCodeScansRequestStatusItem","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/variables/ListOrgBuildsSnapshotSetupRequestStatus","title":"DevinApi.ListOrgBuildsSnapshotSetupRequestStatus","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/PlaybookResponse/variables/AccessType","title":"DevinApi.PlaybookResponse.AccessType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/PrReviewResponse/variables/Status","title":"DevinApi.PrReviewResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/QueueResponse/variables/Status","title":"DevinApi.QueueResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/RepoIndexJobResponse/variables/Status","title":"DevinApi.RepoIndexJobResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/Role/variables/RoleType","title":"DevinApi.Role.RoleType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleCreateRequest/variables/Agent","title":"DevinApi.ScheduleCreateRequest.Agent","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleCreateRequest/variables/NotifyOn","title":"DevinApi.ScheduleCreateRequest.NotifyOn","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleCreateRequest/variables/ScheduleType","title":"DevinApi.ScheduleCreateRequest.ScheduleType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleResponse/variables/Agent","title":"DevinApi.ScheduleResponse.Agent","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleResponse/variables/NotifyOn","title":"DevinApi.ScheduleResponse.NotifyOn","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleResponse/variables/ScheduleType","title":"DevinApi.ScheduleResponse.ScheduleType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleUpdateRequest/variables/Agent","title":"DevinApi.ScheduleUpdateRequest.Agent","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleUpdateRequest/variables/NotifyOn","title":"DevinApi.ScheduleUpdateRequest.NotifyOn","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/ScheduleUpdateRequest/variables/ScheduleType","title":"DevinApi.ScheduleUpdateRequest.ScheduleType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SecretCreateRequest/variables/Type","title":"DevinApi.SecretCreateRequest.Type","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SecretResponse/variables/AccessType","title":"DevinApi.SecretResponse.AccessType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SecretResponse/variables/SecretType","title":"DevinApi.SecretResponse.SecretType","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionAttachment/variables/Source","title":"DevinApi.SessionAttachment.Source","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionCreateRequest/variables/DevinMode","title":"DevinApi.SessionCreateRequest.DevinMode","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionInsightsActionItem/variables/Type","title":"DevinApi.SessionInsightsActionItem.Type","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/variables/Category","title":"DevinApi.SessionInsightsResponse.Category","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/variables/Origin","title":"DevinApi.SessionInsightsResponse.Origin","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/variables/SessionSize","title":"DevinApi.SessionInsightsResponse.SessionSize","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/variables/Status","title":"DevinApi.SessionInsightsResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionInsightsResponse/variables/StatusDetail","title":"DevinApi.SessionInsightsResponse.StatusDetail","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionMessage/variables/Source","title":"DevinApi.SessionMessage.Source","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/variables/SessionPurpose","title":"DevinApi.SessionPurpose","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionResponse/variables/Category","title":"DevinApi.SessionResponse.Category","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionResponse/variables/Origin","title":"DevinApi.SessionResponse.Origin","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionResponse/variables/Status","title":"DevinApi.SessionResponse.Status","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionResponse/variables/StatusDetail","title":"DevinApi.SessionResponse.StatusDetail","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionsQueryParams/variables/Category","title":"DevinApi.SessionsQueryParams.Category","tag":"VARIABLE"},{"href":"/sdk/api/DevinApi/SessionsQueryParams/Origins/variables/Item","title":"DevinApi.SessionsQueryParams.Origins.Item","tag":"VARIABLE"},{"href":"/sdk/api/variables/DevinApiEnvironment","title":"DevinApiEnvironment","tag":"VARIABLE"}]}]},{"group":"Resources","pages":[{"title":"Devin SDK changelog","sidebarTitle":"Changelog","href":"/sdk/changelog"}]}]}]},{"tab":"Federal","groups":[{"group":"Federal","pages":[{"title":"Introduction","icon":"flag-usa","href":"/federal/introduction"},{"title":"Getting Started","icon":"rocket","href":"/federal/getting-started"},{"title":"Groups","icon":"users","href":"/federal/groups"},{"title":"Model Provisioning","icon":"sliders","href":"/federal/model-provisioning"},{"title":"ACU Limits","icon":"gauge","href":"/federal/acu-limits"},{"group":"API Reference","pages":[{"title":"API Overview","icon":"code","href":"/federal/api/overview"},{"title":"ACU Consumption","icon":"chart-line","href":"/federal/api/acu-consumption"},{"title":"Group Management","icon":"users-gear","href":"/federal/api/group-management"},{"title":"User ACU Caps","icon":"gauge-high","href":"/federal/api/acu-caps"},{"title":"Python SDK","icon":"python","href":"/federal/api/python-sdk"}]},{"group":"Air-Gapped Desktop + CLI","pages":[{"title":"Air-Gapped Devin Desktop and CLI","sidebarTitle":"Overview","icon":"plane-slash","href":"/federal/air-gapped/overview"},{"title":"Install Air-Gapped Devin Desktop","sidebarTitle":"Install","icon":"download","href":"/federal/air-gapped/install"},{"title":"Air-Gapped Devin License File","sidebarTitle":"License","icon":"key","href":"/federal/air-gapped/license"},{"title":"Air-Gapped Devin Models File","sidebarTitle":"Models file","icon":"microchip","href":"/federal/air-gapped/models-file"},{"title":"Air-Gapped Devin SSO with Your IdP","sidebarTitle":"SSO","icon":"id-badge","href":"/federal/air-gapped/sso"},{"title":"Air-Gapped Devin Network and Certificates","sidebarTitle":"Network and certificates","icon":"shield-halved","href":"/federal/air-gapped/network-and-certificates"},{"title":"Air-Gapped Devin On-Disk Formats","sidebarTitle":"On-disk formats","icon":"folder-tree","href":"/federal/air-gapped/on-disk-formats"},{"title":"Air-Gapped Devin Error Code Reference","sidebarTitle":"Error codes","icon":"list-ol","href":"/federal/air-gapped/error-codes"},{"title":"Troubleshoot Air-Gapped Devin: doctor Runbook","sidebarTitle":"Troubleshooting","icon":"stethoscope","href":"/federal/air-gapped/troubleshooting"},{"title":"Update Air-Gapped Devin Desktop and CLI","sidebarTitle":"Updates","icon":"arrows-rotate","href":"/federal/air-gapped/updates"}]},{"title":"Security","icon":"shield-halved","href":"/federal/security"},{"title":"Compliance and Availability","icon":"clipboard-check","href":"/federal/compliance"},{"title":"Billing and Procurement","icon":"money-bill","href":"/federal/usage-and-billing"},{"title":"Federal FAQs","sidebarTitle":"FAQs","icon":"circle-question","href":"/federal/faqs"},{"title":"Federal Changelog","sidebarTitle":"Changelog","icon":"clock-rotate-left","href":"/federal/changelog"}]}]}]},{"language":"es","pages":[{"title":"es","href":"/es/get-started/devin-intro"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/get-started/devin-intro"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/get-started/devin-intro"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/get-started/devin-intro"}]},{"language":"de","pages":[{"title":"de","href":"/de/get-started/devin-intro"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/get-started/devin-intro"}]},{"language":"it","pages":[{"title":"it","href":"/it/get-started/devin-intro"}]}]},"basePath":"","title":"Libreria di template dei blueprint di Devin - Devin Docs","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}