Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Bug]: Update Prompt and Resource endpoints to use unique IDs instead of name or uri #1184

Open
Assignees
Labels
bugSomething isn't working triageIssues / Features awaiting triage
@rakdutta

Description

Currently, the following endpoints use non-unique identifiers (name for prompts and uri for resources):

Prompt Endpoints:

@admin_router.post("/prompts/{name}/edit")
@admin_router.post("/prompts/{name}/delete")
@admin_router.get("/prompts/{name}")
@prompt_router.put("/{name}", response_model=PromptRead)
@prompt_router.delete("/{name}")
@prompt_router.post("/{name}")
@prompt_router.get("/{name}")

Resource Endpoints:

@admin_router.post("/resources/{uri}/edit")
@admin_router.post("/resources/{uri}/delete")
@admin_router.get("/resources/{uri}")
@resource_router.get("/{uri:path}")
@resource_router.put("/{uri:path}", response_model=ResourceRead)
@resource_router.delete("/{uri:path}")
@resource_router.post("/subscribe/{uri:path}")

However, prompt names and resource URIs are not guaranteed to be unique across different teams or users (especially when visibility is set to team or private). This can cause conflicts and incorrect operations.

Proposed Change:
Update these endpoints to use unique identifiers (prompt_id and resource_id) instead:

Updated Prompt Endpoints:

@admin_router.post("/prompts/{prompt_id}/edit")
@admin_router.post("/prompts/{prompt_id}/delete")
@admin_router.get("/prompts/{prompt_id}")
@prompt_router.put("/{prompt_id}", response_model=PromptRead)
@prompt_router.delete("/{prompt_id}")
@prompt_router.post("/{prompt_id}")
@prompt_router.get("/{prompt_id}")

Updated Resource Endpoints:

@admin_router.post("/resources/{resource_id}/edit")
@admin_router.post("/resources/{resource_id}/delete")
@admin_router.get("/resources/{resource_id}")
@resource_router.get("/{resource_id}")
@resource_router.put("/{resource_id}", response_model=ResourceRead)
@resource_router.delete("/{resource_id}")
@resource_router.post("/subscribe/{resource_id}")

Impact:

  • Prevents conflicts when multiple prompts or resources share the same name/URI.
  • Ensures correct record-level operations across teams and users.
  • Improves API consistency and reliability.

Tasks:

  • Update route definitions to use prompt_id and resource_id.
  • Update frontend/API calls to send prompt_id and resource_id instead of name/uri.
  • Verify edit, delete, and fetch operations for both Prompts and Resources under user/team visibility scopes.

Additional Notes:
This change will ensure unique identification and accurate operations across all team and user contexts.

Metadata

Metadata

Labels

bugSomething isn't working triageIssues / Features awaiting triage

Type

Projects

No projects

Milestone

No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      AltStyle によって変換されたページ (->オリジナル) /