API HTTPidentity-svc

GET /auth/invitations

Listar invitaciones (admin)

ImplementadoSin versión del tren todavía· generada desde apps/docs/generated/openapi/identity-svc.json

Página generada desde apps/identity-svc/src/app.aot.ts. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

GET /auth/invitations

Las más recientes primero, con su estado, usos y las cuentas creadas.

Acceso: Bearer de identity con policy resource:invitation:read.

CampoValor
Servicioidentity-svc
operationIdgetAuthInvitations
Policy (dec-0118 §3)resource:invitation:read
Tagsidentity

Parámetros

NombreEnRequeridoEsquema
statusqueryno{"type":"string","enum":["active","exhausted","expired","revoked"]}
limitqueryno{"type":"integer","minimum":1,"maximum":100}

Respuestas

200

Invitaciones, la más reciente primero.

application/json

{
  "type": "object",
  "required": [
    "invitations"
  ],
  "properties": {
    "invitations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "role",
          "createdBy",
          "createdAt",
          "expiresAt",
          "uses",
          "maxUses",
          "redeemedBy"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "exhausted",
              "expired",
              "revoked"
            ]
          },
          "role": {
            "type": "string",
            "enum": [
              "restricted",
              "member"
            ]
          },
          "email": {
            "type": "string",
            "description": "Email al que está ligada (minúsculas), si lo está."
          },
          "note": {
            "type": "string"
          },
          "createdBy": {
            "type": "string",
            "description": "actorId de quien la creó."
          },
          "createdAt": {
            "type": "integer",
            "description": "Epoch ms."
          },
          "expiresAt": {
            "type": "integer",
            "description": "Epoch ms."
          },
          "uses": {
            "type": "integer",
            "minimum": 0
          },
          "maxUses": {
            "type": "integer",
            "minimum": 1
          },
          "redeemedBy": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "actorId de las cuentas creadas con ella."
          },
          "revokedAt": {
            "type": "integer",
            "description": "Epoch ms."
          }
        },
        "description": "Invitación de alta."
      }
    }
  },
  "description": "Invitaciones, la más reciente primero."
}

400

Problem Details (RFC 9457), status 400. Códigos: IDENTITY_INVALID_INPUT, IDENTITY_RETURN_TO_NOT_ALLOWED, IDENTITY_OIDC_STATE_MISMATCH, IDENTITY_SCOPE_INVALID, IDENTITY_DEVICE_AUTHORIZATION_PENDING, IDENTITY_DEVICE_SLOW_DOWN, IDENTITY_DEVICE_ACCESS_DENIED, IDENTITY_DEVICE_CODE_EXPIRED, IDENTITY_DEVICE_CLIENT_UNKNOWN, IDENTITY_INVITE_INVALID.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "retryable",
    "category"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 400
    },
    "code": {
      "type": "string",
      "enum": [
        "IDENTITY_INVALID_INPUT",
        "IDENTITY_RETURN_TO_NOT_ALLOWED",
        "IDENTITY_OIDC_STATE_MISMATCH",
        "IDENTITY_SCOPE_INVALID",
        "IDENTITY_DEVICE_AUTHORIZATION_PENDING",
        "IDENTITY_DEVICE_SLOW_DOWN",
        "IDENTITY_DEVICE_ACCESS_DENIED",
        "IDENTITY_DEVICE_CODE_EXPIRED",
        "IDENTITY_DEVICE_CLIENT_UNKNOWN",
        "IDENTITY_INVITE_INVALID"
      ]
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "retryable": {
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "transient",
        "permanent",
        "recoverable"
      ]
    }
  },
  "x-styx-media-type": "application/problem+json"
}

401

Problem Details (RFC 9457), status 401. Códigos: unauthenticated, reauth-required, IDENTITY_OIDC_CALLBACK_REJECTED, IDENTITY_TOKEN_EXPIRED, IDENTITY_TOKEN_INVALID, IDENTITY_SESSION_REVOKED, IDENTITY_REFRESH_TOKEN_REUSED, IDENTITY_KEY_INVALID.

application/problem+json

{
  "anyOf": [
    {
      "type": "object",
      "required": [
        "type",
        "title",
        "status",
        "code"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "number",
          "const": 401
        },
        "code": {
          "type": "string",
          "enum": [
            "unauthenticated",
            "reauth-required"
          ]
        },
        "detail": {
          "type": "string"
        }
      },
      "x-styx-media-type": "application/problem+json"
    },
    {
      "type": "object",
      "required": [
        "type",
        "title",
        "status",
        "code",
        "retryable",
        "category"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "number",
          "const": 401
        },
        "code": {
          "type": "string",
          "enum": [
            "IDENTITY_OIDC_CALLBACK_REJECTED",
            "IDENTITY_TOKEN_EXPIRED",
            "IDENTITY_TOKEN_INVALID",
            "IDENTITY_SESSION_REVOKED",
            "IDENTITY_REFRESH_TOKEN_REUSED",
            "IDENTITY_KEY_INVALID"
          ]
        },
        "detail": {
          "type": "string"
        },
        "instance": {
          "type": "string"
        },
        "retryable": {
          "type": "boolean"
        },
        "category": {
          "type": "string",
          "enum": [
            "transient",
            "permanent",
            "recoverable"
          ]
        }
      },
      "x-styx-media-type": "application/problem+json"
    }
  ]
}

403

Problem Details (RFC 9457), status 403. Códigos: forbidden, IDENTITY_CSRF_REJECTED, IDENTITY_FORBIDDEN, IDENTITY_SCOPE_EXCEEDS_GRANTS, IDENTITY_KEY_IN_BROWSER_CONTEXT.

application/problem+json

{
  "anyOf": [
    {
      "type": "object",
      "required": [
        "type",
        "title",
        "status",
        "code"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "number",
          "const": 403
        },
        "code": {
          "type": "string",
          "const": "forbidden"
        },
        "detail": {
          "type": "string"
        }
      },
      "x-styx-media-type": "application/problem+json"
    },
    {
      "type": "object",
      "required": [
        "type",
        "title",
        "status",
        "code",
        "retryable",
        "category"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "number",
          "const": 403
        },
        "code": {
          "type": "string",
          "enum": [
            "IDENTITY_CSRF_REJECTED",
            "IDENTITY_FORBIDDEN",
            "IDENTITY_SCOPE_EXCEEDS_GRANTS",
            "IDENTITY_KEY_IN_BROWSER_CONTEXT"
          ]
        },
        "detail": {
          "type": "string"
        },
        "instance": {
          "type": "string"
        },
        "retryable": {
          "type": "boolean"
        },
        "category": {
          "type": "string",
          "enum": [
            "transient",
            "permanent",
            "recoverable"
          ]
        }
      },
      "x-styx-media-type": "application/problem+json"
    }
  ]
}

404

Problem Details (RFC 9457), status 404. Códigos: IDENTITY_SESSION_NOT_FOUND, IDENTITY_DEVICE_CODE_UNKNOWN, IDENTITY_KEY_NOT_FOUND, IDENTITY_INVITE_NOT_FOUND.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "retryable",
    "category"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 404
    },
    "code": {
      "type": "string",
      "enum": [
        "IDENTITY_SESSION_NOT_FOUND",
        "IDENTITY_DEVICE_CODE_UNKNOWN",
        "IDENTITY_KEY_NOT_FOUND",
        "IDENTITY_INVITE_NOT_FOUND"
      ]
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "retryable": {
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "transient",
        "permanent",
        "recoverable"
      ]
    }
  },
  "x-styx-media-type": "application/problem+json"
}

409

Problem Details (RFC 9457), status 409. Códigos: IDENTITY_KEY_LIMIT, IDENTITY_INVITE_EXHAUSTED, IDENTITY_ACCOUNT_EXISTS.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "retryable",
    "category"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 409
    },
    "code": {
      "type": "string",
      "enum": [
        "IDENTITY_KEY_LIMIT",
        "IDENTITY_INVITE_EXHAUSTED",
        "IDENTITY_ACCOUNT_EXISTS"
      ]
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "retryable": {
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "transient",
        "permanent",
        "recoverable"
      ]
    }
  },
  "x-styx-media-type": "application/problem+json"
}

410

Problem Details (RFC 9457), status 410. Códigos: IDENTITY_INVITE_EXPIRED.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "retryable",
    "category"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 410
    },
    "code": {
      "type": "string",
      "const": "IDENTITY_INVITE_EXPIRED"
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "retryable": {
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "transient",
        "permanent",
        "recoverable"
      ]
    }
  },
  "x-styx-media-type": "application/problem+json"
}

422

Problem Details (RFC 9457), status 422. Códigos: validation.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 422
    },
    "code": {
      "type": "string",
      "const": "validation"
    },
    "on": {
      "type": "string"
    },
    "property": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    }
  },
  "x-styx-media-type": "application/problem+json"
}

429

Problem Details (RFC 9457), status 429. Códigos: rate-limited, IDENTITY_RATE_LIMITED.

application/problem+json

{
  "anyOf": [
    {
      "type": "object",
      "required": [
        "type",
        "title",
        "status",
        "code"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "number",
          "const": 429
        },
        "code": {
          "type": "string",
          "const": "rate-limited"
        },
        "detail": {
          "type": "string"
        }
      },
      "x-styx-media-type": "application/problem+json"
    },
    {
      "type": "object",
      "required": [
        "type",
        "title",
        "status",
        "code",
        "retryable",
        "category"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "number",
          "const": 429
        },
        "code": {
          "type": "string",
          "const": "IDENTITY_RATE_LIMITED"
        },
        "detail": {
          "type": "string"
        },
        "instance": {
          "type": "string"
        },
        "retryable": {
          "type": "boolean"
        },
        "category": {
          "type": "string",
          "enum": [
            "transient",
            "permanent",
            "recoverable"
          ]
        }
      },
      "x-styx-media-type": "application/problem+json"
    }
  ]
}

500

Problem Details (RFC 9457), status 500. Códigos: IDENTITY_INTERNAL.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "retryable",
    "category"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 500
    },
    "code": {
      "type": "string",
      "const": "IDENTITY_INTERNAL"
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "retryable": {
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "transient",
        "permanent",
        "recoverable"
      ]
    }
  },
  "x-styx-media-type": "application/problem+json"
}

503

Problem Details (RFC 9457), status 503. Códigos: IDENTITY_OIDC_PROVIDER_UNAVAILABLE, IDENTITY_CLIENT_ADDRESS_UNKNOWN, IDENTITY_DEVICE_CAPACITY, IDENTITY_STORE_UNAVAILABLE, IDENTITY_DB_READ_FAILED, IDENTITY_DB_WRITE_FAILED.

application/problem+json

{
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "retryable",
    "category"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "const": 503
    },
    "code": {
      "type": "string",
      "enum": [
        "IDENTITY_OIDC_PROVIDER_UNAVAILABLE",
        "IDENTITY_CLIENT_ADDRESS_UNKNOWN",
        "IDENTITY_DEVICE_CAPACITY",
        "IDENTITY_STORE_UNAVAILABLE",
        "IDENTITY_DB_READ_FAILED",
        "IDENTITY_DB_WRITE_FAILED"
      ]
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "retryable": {
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "transient",
        "permanent",
        "recoverable"
      ]
    }
  },
  "x-styx-media-type": "application/problem+json"
}