> ## Documentation Index
> Fetch the complete documentation index at: https://developers.googa.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Início do login federado do assinante (SSO OIDC) — planejado

> **Planejado — ainda não implementado.** Não existe hoje nenhum endpoint de SSO em nenhum ambiente, e nenhum IdP de parceiro está configurado. Esta operação documenta o contrato de destino, não algo disponível para chamada.

Quando existir: endpoint de **redirecionamento de navegador**, não uma chamada JSON — o app do parceiro (ex: Minha Algar) redireciona o navegador/webview do assinante para aqui. O Supabase Auth de cada produto atua como *Relying Party* do provedor OIDC do parceiro: valida o `id_token` recebido, cria/recupera o usuário e devolve uma sessão de app normal. Ver o desenho em [Modelo de autenticação sobre Supabase](/architecture/supabase-auth-model).



## OpenAPI

````yaml /platform/openapi.yaml get /oauth2/authorize
openapi: 3.1.0
info:
  title: Googa Platform API
  version: 1.0.0
  summary: >-
    API compartilhada por todo parceiro Googa — entitlements, status de
    assinante, uso para billing e webhooks. Consumida por NovelAI, HistorinhAI e
    NovelAudio da mesma forma; a lógica de catálogo/conteúdo de cada produto
    vive em sua própria API (ver abas NovelAI / HistorinhAI / NovelAudio).
  description: >-
    Hoje, apenas os apps oficiais (Web/PWA) consomem os produtos Googa,
    autenticando diretamente contra o Supabase de cada produto. Esta API é a
    camada que permite um parceiro terceiro (como uma operadora) integrar sem
    acesso direto ao banco de dados. Ver [Modelo de autenticação sobre
    Supabase](/architecture/supabase-auth-model) para o desenho completo.


    **Status:** os endpoints de token, entitlements, status de assinante,
    billing usage, JWKS e o despacho de webhooks estão implementados no código
    (repo `googa-platform` e Edge Functions de domínio de cada produto); o
    deploy em produção ainda está pendente. O SSO do assinante (`GET
    /oauth2/authorize`) é **planejado — ainda não implementado** e está marcado
    como tal na própria operação.
  contact:
    name: Googa — Suporte a parceiros
    email: developers@googa.com.br
  license:
    name: Uso restrito — ver Política de Uso da API
    url: https://developers.googa.com.br/security/api-usage-policy
servers:
  - url: https://api.googa.com.br/v1
    description: Produção (proposto)
  - url: https://sandbox.googa.com.br/v1
    description: >-
      Sandbox (proposto — ambiente ainda não existe) — dados fictícios, sem
      impacto em billing real
security:
  - partnerOAuth2: []
tags:
  - name: OAuth2
    description: >-
      Emissão e uso de credenciais de parceiro (client credentials) e, no
      futuro, SSO federado do assinante.
  - name: Entitlements
    description: Ativação e suspensão de acesso por assinante e produto.
  - name: Subscriber
    description: Consulta de status do assinante.
  - name: Billing
    description: Consulta de uso para reconciliação e Nota de Débito.
  - name: Keys
    description: >-
      Chave pública (JWKS) usada pelos projetos de produto para verificar o
      token de parceiro.
paths:
  /oauth2/authorize:
    get:
      tags:
        - OAuth2
      summary: Início do login federado do assinante (SSO OIDC) — planejado
      description: >-
        **Planejado — ainda não implementado.** Não existe hoje nenhum endpoint
        de SSO em nenhum ambiente, e nenhum IdP de parceiro está configurado.
        Esta operação documenta o contrato de destino, não algo disponível para
        chamada.


        Quando existir: endpoint de **redirecionamento de navegador**, não uma
        chamada JSON — o app do parceiro (ex: Minha Algar) redireciona o
        navegador/webview do assinante para aqui. O Supabase Auth de cada
        produto atua como *Relying Party* do provedor OIDC do parceiro: valida o
        `id_token` recebido, cria/recupera o usuário e devolve uma sessão de app
        normal. Ver o desenho em [Modelo de autenticação sobre
        Supabase](/architecture/supabase-auth-model).
      operationId: ssoAuthorize
      parameters:
        - name: response_type
          in: query
          required: true
          schema:
            type: string
            enum:
              - code
        - name: client_id
          in: query
          required: true
          schema:
            type: string
        - name: redirect_uri
          in: query
          required: true
          schema:
            type: string
            format: uri
        - name: state
          in: query
          required: true
          schema:
            type: string
          description: >-
            Opaco, devolvido sem alteração — usado pelo parceiro para
            correlacionar a resposta.
        - name: product
          in: query
          required: true
          schema:
            type: string
            enum:
              - novelai
              - novelaudio
              - historinhai
          description: >-
            Qual produto o assinante está entrando — define para qual Supabase
            Auth o fluxo é roteado.
      responses:
        '302':
          description: >-
            Redireciona para `redirect_uri` com `code` e `state` (sucesso) ou
            `error` (falha).
      security: []
components:
  securitySchemes:
    partnerOAuth2:
      type: oauth2
      description: >-
        Client credentials — para Entitlements (escrita), Subscriber Status e
        Billing (leitura). Cada endpoint exige o escopo correspondente; um token
        sem o escopo recebe `403`.
      flows:
        clientCredentials:
          tokenUrl: https://api.googa.com.br/v1/oauth2/token
          scopes:
            entitlements:write: Ativar/suspender/cancelar entitlements
            subscriber:read: Consultar status de assinante
            billing:read: Consultar uso para billing

````