owncloud / owncloud/android

[FEATURE REQUEST] Sharing NG: Create new link

Open
#4,955 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature request Share by Public Link
Dominant language
Kotlin
Stars
4.2k
Forks
3.1k
Avg merge
1d 12h
Merged PRs (30d)
7

Description

In case of an oCIS server, using the Graph API to create a link over any item. Similar to the link creation over an space.

1. Permission:

same as share with user/groups. No specific permission for links, to show the + option

2. Create Link

Link is conformed by:

  • Name: optional. If empty Unnamed Link (with translations). Max 255 chars
  • Permission: mandatory. Check screenshot below
  • Password: depends on server parameters and capabilities (password policy)
    • OCIS_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD -> mandatory password for Can edit and Secret file drop
    • OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD -> mandatory password for everyone
  • Expiration date: optional

As the spaces, password and expiration date will be displayed once one of the permissions is selected.

Permissions, to be hardcoded like the spaces

Files Folders
Image Image
3. Submission

POST https://<url>:9200/graph/v1beta1/drives/<drive-id>/items/<item-id>/createLink

with body

{
    "password": "UX}H[8Uq/%'Mz-lq4HUin:e{|G46&Rttjt,WT7Y[u6&,",
    "displayName": "A",
    "type": "view",
    "expirationDateTime": "2026-08-26T11:53:08.664Z"
}

type: view, edit, createOnly

"expirationDateTime" only if it was set.

Response body like:

{
    "createdDateTime": "2026-08-19T11:55:13.45495517Z",
    "hasPassword": true,
    "id": "IAfiUVqqpslHpNK",
    "link": {
        "@libre.graph.displayName": "",
        "@libre.graph.quickLink": false,
        "preventsDownload": false,
        "type": "edit",
        "webUrl": "https://<url>:9200/s/ioRkSIBBVDTKzxy"
    }
}

Link id will be used for editing and deleting the link

4. Link

In every row, the chain icon should open the sharing link, like in space management.

TASKS
  • Research (if needed)
  • Create branch feature/feature_name
  • Development tasks
    • Implement whatever
    • ...
    • Implement unit tests (if needed)
  • Code review and apply changes requested
  • Design test plan
  • QA
  • Merge branch feature/feature_name into master

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Android sharing and space-management flows that call the Graph API. Implement link creation through POST /graph/v1beta1/drives//items//createLink, including the listed permissions, password rules, optional name and expiration, and the chain icon in each row. Done means creation, link opening, and the specified response data work with unit tests and a QA test plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.