Skip to content

[Epic 953][Stage I][chat-api] Retain owner-only Conversation views and block writes #387

Description

@think-in-universe

Parent epic: nearai/cloud-api#953
Parent stage: nearai/cloud-api#954
Parent component: #385
Target date: Sep 1

Goal

Retain only the existing owner-scoped Conversation read views needed for migration/export while blocking every normal Conversation proxy write.

Retained temporary views

The following existing, owner-scoped, session-authenticated views remain available with Cache-Control: no-store:

  • GET /v1/conversations
  • GET /v1/conversations/{conversation_id}
  • GET /v1/conversations/{conversation_id}/items

The chat-api list is an existing owner-scoped view used to identify a user's records. It is not a new export API or a new public Cloud Conversation-list endpoint. Shared and optional-auth/public Conversation reads are outside the temporary contract.

Disabled operations

Conversation creation, update, deletion, item creation, and any unsupported or unlisted legacy Conversation path return authenticated 410 Gone with Cache-Control: no-store. Disabled operations must not make a Cloud mutation or change local Conversation state.

This disables the session-authenticated Chat proxy route only. It does not remove Cloud #943's direct, workspace-scoped Conversation resource DELETE retained for the #380 account-deletion worker.

All sharing routes, including GET /v1/conversations/{conversation_id}/shares, are closed under #389. Pin/archive/clone are also tracked there.

Acceptance criteria

  • The three views above remain owner-scoped, session-authenticated, and work against Cloud's retained read surface.
  • POST /v1/conversations, write/delete methods on a Conversation, POST /items, and unknown legacy descendants are 410/no-store.
  • OpenAPI/docs list only the temporary owner Conversation views.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions