Saltar al contenido

Clientes y protocolos ​

Arkvory tiene un único almacenamiento y un único modelo de acceso, pero varias formas de llegar a ellos. Cada forma es un cliente o un protocolo que una herramienta ya habla. Todas guardan los datos como artefactos de Arkvory. Por eso se aplican los mismos permisos, cuotas, comprobaciones SHA-256, reglas de retención, copias de seguridad y espejos, sea cual sea la forma que use.

Esta página enumera todas las formas de comunicarse con Arkvory, para qué sirve cada una y qué credenciales acepta. Úsela para elegir la herramienta adecuada para cada tarea.

Resumen ​

FormaDirecciónPara qué sirveCredenciales
Consola webhttps://arkvory.example/console/Explorar repositorios, subir y descargar en un navegador, administrar usuarios, claves y copias de seguridadInicio de sesión con nombre de usuario y contraseña, o una clave de servicio
Línea de comandos arkvoryctl/api/v1Scripts de CI, subidas y descargas reanudables, archivos por ruta, promoción, copias de seguridadClave de un archivo o de una variable de entorno (se envía como Bearer)
SDK de TypeScript/api/v1Sus propias herramientas en TypeScript o JavaScript, en Node.js o en un navegadorClave obtenida de una función de devolución de llamada (se envía como Bearer)
API REST/api/v1/...Integraciones en cualquier lenguajeSolo Authorization: Bearer <key>
Registro de contenedores (OCI)/v2/Docker, Podman, Buildx, containerd, charts de Helm, artefactos de ORASBasic con la clave como contraseña (docker login), o Bearer
Git LFS/lfs/<repository>Archivos grandes de un repositorio git, bloqueo de archivos para Unity y UnrealBasic con la clave como contraseña (asistente de credenciales de git), o Bearer
Registro npm/npm/<repository>/Registros con ámbito (scoped registries) de Unity Package Manager, npm publish y npm installBearer (_authToken en .npmrc, token en .upmconfig.toml), o Basic _auth
Archivos raw por ruta/api/v1/repositories/<repository>/raw/<path>Una sola solicitud con curl -T o PowerShellSolo Authorization: Bearer <key>
WebhooksLa URL de su receptorIniciar un despliegue o una tarea cuando cambia un repositorioFirma HMAC de cada petición

Las rutas bajo /v2, /lfs y /npm siguen las especificaciones de sus protocolos. No forman parte del documento OpenAPI de /api/v1 y notifican los errores en el formato que esperan sus clientes.

Credenciales ​

Toda solicitud necesita una credencial, salvo las comprobaciones de estado públicas. Arkvory acepta estos tipos:

TipoAspectoOrigenUso habitual
Token de acceso personalpat_...Lo crea un usuario en la consola. Ámbito read o read-write. Caduca (a los 90 días de forma predeterminada, como máximo a los 365).Desarrolladores: Unity, git, Docker en una estación de trabajo
Clave de servicioarkvory_...Se emite para una cuenta de servicio, con acciones exactas por repositorio, con la clave de recuperación o mediante una clave de operador delegadaCI/CD, agentes de despliegue, servidores de compilación
Clave de archivocualquier secretoEl archivo de claves del servidor (ARKVORY_KEYS_FILE), con read o write por repositorio; la clave del propietario también administraPropietario de la instalación, integraciones heredadas
Sesióndps_...Inicio de sesión en la consola; válida durante 12 horasTrabajo interactivo en la consola
Enlace de descargaURL con ?token=Se crea para un artefacto; de 60 segundos a 24 horasEntregar un archivo a alguien que no tiene una clave

Los protocolos se diferencian solo en cómo envían la clave:

  • /api/v1, la CLI, el SDK y los archivos raw usan Authorization: Bearer <key>.
  • /v2, /lfs y /npm también aceptan HTTP Basic. El nombre de usuario no se comprueba. La contraseña es la clave de Arkvory. Así envían las credenciales docker login, los asistentes de credenciales de git y _auth de npm.
  • Un token personal de solo lectura nunca modifica datos. Aun así, puede descargar objetos de Git LFS, porque la solicitud batch de Git LFS es un POST también para las descargas.

Cómo crear tokens y claves: Cuentas y claves. Detalles de las cabeceras: Autenticación.

¿Cuál debo usar? ​

TareaForma recomendada
Subir un artefacto de compilación desde CI y reanudar la subida tras un fallo de redarkvoryctl upload o arkvoryctl put
Publicar un paquete UPack desde CIarkvoryctl packages publish
Desplegar en un servidor «la versión 1.4 más reciente»arkvoryctl packages download --range ^1.4 --stage release
Colocar un archivo pequeño o mediano por ruta desde un script de shell sin instalar nadaArchivos raw con curl -T o PowerShell
Almacenar imágenes de contenedor o charts de HelmImágenes de contenedor
Mantener las texturas, los modelos y los niveles de un juego fuera del host de gitGit LFS
Compartir paquetes de Unity entre proyectosPaquetes de Unity y npm
Crear su propia herramienta o interfaz webSDK de TypeScript
Integrar desde Python, Go, C# u otro lenguajeAPI REST
Explorar, administrar usuarios, claves y copias de seguridadConsola web

Reglas prácticas:

  • Archivos grandes (muchos gigabytes): use arkvoryctl o el SDK. Suben en partes y continúan tras una interrupción. Una única solicitud PUT (archivos raw, objetos de Git LFS, npm publish, una capa de Docker) vuelve a empezar desde el byte cero tras un fallo.
  • La herramienta ya habla un protocolo: use ese protocolo. Docker, git y Unity no necesitan software adicional.
  • La máquina solo lee: dele un token de solo lectura o una clave de servicio solo con acciones de lectura.

Reglas comunes ​

HTTPS. Use HTTPS para todos los clientes. La CLI y el SDK rechazan HTTP sin cifrar salvo en loopback (localhost, 127.0.0.1, [::1]). Docker necesita un certificado de confianza. Git envía la clave con cada solicitud. Consulte HTTPS.

Mismo almacenamiento. Una capa de imagen, un objeto de Git LFS, un tarball de npm y un archivo raw son todos artefactos. Cuentan para las cuotas de los repositorios y para la capacidad de la instalación. Se verifican con SHA-256 al almacenarlos. Se incluyen en las copias de seguridad.

Puertas de enlace de lectura y espejos. Una puerta de enlace de lectura solo acepta GET y HEAD. Un espejo es una copia de solo lectura de un repositorio en otra instalación.

FormaEn una puerta de enlace de lecturaEn un espejo
/api/v1, CLI, SDKSolo lecturasLecturas; los cambios se rechazan (409 mirror_read_only)
Registro de contenedoresPullPull; el push se rechaza
Git LFSNo se admite (la solicitud batch es un POST)Clone y fetch; el push y los bloqueos se rechazan
Registro npmInstalación y búsquedaInstalación y búsqueda; la publicación se rechaza
Archivos rawGET y HEADGET y HEAD

Consulte Puertas de enlace de lectura y Espejos.

Arkvory · ProAnimaStudio