Skip to content

Cómo configurar un espacio de nombres de tenant

Un espacio de nombres de tenant es la partición aislada dentro de la plataforma que contiene los recursos de un solo cliente — nodos de flota, sesiones, registros de auditoría y tokens de capacidad. Configurar un espacio de nombres de tenant significa registrar el tenant con la capa de servicios, definir límites de cuota y verificar que el aislamiento esté aplicado. Esta guía cubre la configuración inicial del espacio de nombres para un solo tenant.

Para el servicio que aplica el aislamiento de tenant, véase service-vm-tenant. Para la arquitectura de flota que abarcan los espacios de nombres, véase ppn-small-business-compute.

Requisitos previos

  • Acceso de administrador a service-vm-tenant (el servicio proxy de tenant, puerto 9221)
  • Un ID de tenant: una cadena ASCII minúscula estable que identifica al cliente (p.ej., acme-corp)
  • Valores de cuota acordados con el tenant: máximo de VMs concurrentes, cuota de almacenamiento, tasa de solicitudes API

Paso 1: Registrar el tenant

Cree el registro del tenant publicando en el servicio de tenant:

curl -X POST http://127.0.0.1:9221/v1/tenants \
  -H "Authorization: Bearer <token-admin>" \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": "acme-corp",
    "display_name": "Acme Corporation",
    "max_vms": 10,
    "storage_quota_gb": 100,
    "api_rate_limit_rpm": 600
  }'

Una respuesta exitosa devuelve el registro del tenant con una marca de tiempo created_at. El ID del tenant es inmutable después de la creación — elíjalo cuidadosamente. El libro mayor WORM registra el evento de creación automáticamente.

Paso 2: Emitir el token de capacidad raíz del tenant

Una vez que el espacio de nombres existe, emita un token de capacidad raíz para la primera sesión de administrador del tenant. Este token usa el alcance service:tenant-admin y está limitado al nuevo tenant_id:

curl -X POST http://127.0.0.1:9221/v1/tenants/acme-corp/tokens \
  -H "Authorization: Bearer <token-admin>" \
  -H "Content-Type: application/json" \
  -d '{
    "subject_pubkey": "<clave-publica-admin-tenant>",
    "scope": "service:tenant-admin",
    "expires_in_seconds": 86400
  }'

Entregue este token al administrador designado del tenant. Lo utilizarán para emitir subtokens e inscribir sus propios dispositivos.

Paso 3: Verificar el aislamiento del espacio de nombres

Confirme que el espacio de nombres del tenant está aislado de otros tenants consultando la flota con las credenciales del nuevo tenant:

curl -s "http://127.0.0.1:9221/v1/vms" \
  -H "Authorization: Bearer <token-admin-tenant>"

La respuesta debe contener únicamente las VMs pertenecientes a acme-corp. Si aparecen VMs de otros tenants, el aplicación del espacio de nombres tiene un defecto — no continúe; revise la configuración de service-vm-tenant.

Paso 4: Verificar el cumplimiento de la cuota

Envíe una solicitud que supere la cuota configurada para confirmar que el cumplimiento está activo. Por ejemplo, si max_vms es 10, intente registrar una 11ª VM. El servicio debe devolver una respuesta 429 Too Many Requests con un cuerpo de error de cuota excedida.

El fallo en el cumplimiento de la cuota es un defecto de facturación y equidad — resuélvalo antes de que el tenant comience a usar la producción.

Paso 5: Confirmar la entrada en el libro mayor WORM

El evento de creación del tenant se registra permanentemente. Verifique que la entrada existe:

service-fs read --filter tenant-id=acme-corp --event-type TENANT_CREATED --limit 1

La entrada confirma cuándo se creó el espacio de nombres y bajo qué token de administrador. Este registro no puede ser alterado.

Puntos clave

  • Los IDs de tenant son inmutables después de la creación — elija identificadores descriptivos y estables
  • Cada espacio de nombres de tenant tiene límites de cuota independientes; configúrelos antes de que el tenant comience a inscribir nodos
  • El aislamiento del espacio de nombres debe verificarse antes de entregar las credenciales al tenant
  • Se crea una entrada en el libro mayor WORM para cada evento del ciclo de vida del espacio de nombres (creación, cambio de cuota, eliminación)

Véase también

  • service-vm-tenant — el servicio proxy de tenant que aplica los límites del espacio de nombres
  • ppn-small-business-compute — la arquitectura de la flota de cómputo que particionan los espacios de nombres de tenant
  • issue-capability-token — cómo emitir tokens de capacidad una vez que el espacio de nombres existe
  • scale-user-tiers — ajustar los niveles de acceso por usuario dentro de un espacio de nombres establecido
  • add-a-fleet-node — inscribir el primer nodo de cómputo del tenant después de la configuración del espacio de nombres
Important Information

Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is a trade name of Woodfine Capital Projects Inc. ("Woodfine"). PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. See TRADEMARK.md in this repository for the full trademark notice.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →