Audit every Dropbox shared link and lock down risky ones

By General Input

See every shared link in one board, spot the ones anyone can open with no password and no expiry, then add protection or cut access in a click.

Integrations

  • Dropbox
  • Google Sheets

Type

App

Categories

  • Operations

Build me an app for reviewing who can still get at our Dropbox files. The main surface is a shared link review board: a single table with one row per shared link, so I can see our whole external sharing exposure on one screen and fix it there.

Each row shows the file or folder name, its path, whether the link is public (anyone with the link) or restricted to team members, whether a password is set, whether an expiry date is set, and how old the link is in days. For rows that point at a shared folder, also show the list of people who are members of that folder, collapsed to a count with the names on expand. Load the board with Dropbox List Shared Links, following the cursor until there are no more pages, and use Get Shared Link Metadata to fill in or refresh detail for an individual link. Use List Folder Members to resolve folder membership for shared folder rows. Show member email addresses and flag any member whose email domain does not match our own as external, since those are the ones worth looking at first.

Give me preset filters across the top for the exposures that actually matter, as one-click chips that can combine: anyone with the link, no password set, no expiry set, and links older than 90 days. Include two combined presets that match how people already think about this, one for unprotected links (public with no password) and one for links over 90 days old with no expiration. Make the 90 day threshold a setting rather than hardcoding it. Also give me plain search across file and folder name and path, and sorting on link age and on member count.

Every row gets actions, and there is a checkbox column with bulk select and a select-all-in-current-filter option. The actions are: add a password, set an expiry date, and revoke the link. Password and expiry both call Modify Shared Link Settings, and revoke calls Revoke Shared Link. Every one of these, single row or bulk, goes behind a confirmation step so nothing is revoked accidentally. The confirm dialog names the exact links about to change, shows the count, states precisely what will happen (for a revoke, that the link stops working while the file stays in place), and requires an explicit confirm click. For bulk revoke specifically, make the confirm a little heavier, for example requiring the count to be typed. After the batch runs, show a per-row result summary including any failures, refresh the affected rows from Dropbox, and never assume a write succeeded without checking.

Add a Review this folder button that kicks off a background agent. The user picks a folder, and the agent walks the folder tree with List Folder, recursing into subfolders and following pagination cursors, pulls every shared link underneath it with List Shared Links scoped to the paths it finds, gets detail with Get Shared Link Metadata, and gathers folder access with List Folder Members. It then writes a ranked risk brief back into the app: the riskiest exposures first, each with the file or folder, why it is risky (public with no password, no expiry, very old, external folder members, or several of those at once), and a specific recommended action such as set a password, set an expiry date, remove an external member, or revoke. Rank by combining public visibility, missing password, missing expiry, link age, and the presence of external folder members, rather than by any single attribute. The brief lands in a panel inside the app, keyed to the folder that was reviewed, with the run date on it and previous briefs kept so the user can see how a folder has changed between reviews. Show clear progress while the agent is running, since a deep tree takes a while, and where a recommendation maps to an action the board can perform, let the user trigger that fix straight from the brief through the same confirm step.

Add a Log this review button that appends the current snapshot to a Google Sheet using Append Values, so there is a dated access review record to hand an auditor. Write one row per link currently in view, with the review date, who ran it, the file or folder name, the path, whether it is public or team only, whether a password is set, the expiry date if any, the link age in days, the folder member count, and any action taken during this session. Append rather than overwrite so the sheet builds a running history, and let the user pick the target spreadsheet and tab, creating a header row on first use.

Some things to bake in. This gets opened by whoever owns security or IT operations, usually on a recurring cadence, so the board should be fast to scan and land on the risky rows without setup. Dropbox rate limits per account and returns a retry hint when it does, so pace the tree walk and the bulk writes and back off rather than hammering it. Keep a visible in-app history of changes made through the app, showing who changed or revoked what and when, because that record is half the value at audit time. Handle the empty state gracefully for accounts with no shared links, and be explicit in the UI that revoking a link does not remove access for people who are members of a shared folder, since that distinction is the one people get wrong.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads