Cambiar de entorno
Conmutar entre entornos en Neuroon se reduce a dos cambios:
- La base URL que tu integración usa para llamar a la API (
api.neuroon.ai↔dev-api.neuroon.ai). - La clave correspondiente al entorno (
sk_*yWidget Token).
Toda configuración por entorno debe vivir en variables de entorno o secrets, nunca hardcodeada.
Variables de entorno recomendadas
NEUROON_API_URL=https://api.neuroon.ai
NEUROON_SHOP_ID=shop_xxxxxxxxxxxx
NEUROON_API_KEY=sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
El Widget Token no es env var — lo firma tu propio servidor cada 24 h con la Shop API Key (HMAC). Ver Widget Token.
Por stack
HTML / etiqueta <script> del widget
Cambia el atributo data-api-url de la etiqueta:
<script
src="https://cdn.neuroon.ai/widget@0.9.10/widget.js"
data-token="WIDGET_TOKEN_AQUI"
data-container="#neuroon-search"
data-locale="es"
data-api-url="https://api.neuroon.ai"
async
></script>
Para Desarrollo, sustituye data-api-url="https://dev-api.neuroon.ai" y usa el Widget Token emitido en el Dashboard de Desarrollo.
.NET (cualquier framework: .NET 6+, ASP.NET Core, etc.)
Lee la base URL y la Shop API Key desde appsettings.{Environment}.json o variables de entorno:
// appsettings.Production.json
// {
// "Neuroon": {
// "ApiBaseUrl": "https://api.neuroon.ai",
// "ShopId": "shop_xxxxx",
// "ApiKey": "sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
// }
// }
var apiBase = builder.Configuration["Neuroon:ApiBaseUrl"]
?? "https://api.neuroon.ai";
var apiKey = builder.Configuration["Neuroon:ApiKey"]
?? throw new InvalidOperationException("Missing Neuroon:ApiKey");
using var http = new HttpClient { BaseAddress = new Uri(apiBase) };
http.DefaultRequestHeaders.Add("X-Shop-API-Key", apiKey);
Para conmutar a Desarrollo, cambia Neuroon:ApiBaseUrl a https://dev-api.neuroon.ai y la Neuroon:ApiKey a la sk_* de Desarrollo. No guardes el Widget Token aquí — lo firma tu servidor cada ~24 h con la Shop API Key (HMAC). Ver Recipe · Server-to-server token.
WordPress (PHP)
Define en wp-config.php:
define('NEUROON_API_URL', 'https://api.neuroon.ai');
define('NEUROON_SHOP_ID', 'shop_xxxxxxxxxxxx');
define('NEUROON_API_KEY', 'sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
Y permite override por filtro:
add_filter('neuroon_api_base_url', function($url) {
return defined('WP_ENV') && WP_ENV === 'staging'
? 'https://dev-api.neuroon.ai'
: 'https://api.neuroon.ai';
});
Node.js / TypeScript custom
const NEUROON_API_URL = process.env.NEUROON_API_URL ?? 'https://api.neuroon.ai';
const NEUROON_API_KEY = process.env.NEUROON_API_KEY!;
await fetch(`${NEUROON_API_URL}/api/plugin/shops/${SHOP_ID}/products/sync`, {
method: 'POST',
headers: {
'X-Shop-API-Key': NEUROON_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
Python custom
import os, requests
NEUROON_API_URL = os.environ.get("NEUROON_API_URL", "https://api.neuroon.ai")
NEUROON_API_KEY = os.environ["NEUROON_API_KEY"]
requests.post(
f"{NEUROON_API_URL}/api/plugin/shops/{SHOP_ID}/products/sync",
headers={"X-Shop-API-Key": NEUROON_API_KEY, "Content-Type": "application/json"},
json=payload,
timeout=30,
)
Reglas de oro
- Usa nombres distintos para las variables de entorno (
NEUROON_API_KEY_PROD,NEUROON_API_KEY_DEV) si tu pipeline despliega ambos. - Auditá tus logs para detectar requests con base URL incorrecta antes de cambiar a Producción.
- En contenedores, monta las claves como secretos del orquestador (Docker secret, Kubernetes secret), no como ENV literal en el
Dockerfile.