Shared Folder - Without sync-down
This page details the process to share a shared folder without needing to sync down the vault first.
Overview
This flow is appropriate when the app does not sync Keeper vault data into a local SDK instance (sync_down / VaultOnline) and instead uses authenticated API calls directly after login.
Use this path when you need to read shared folder metadata, invite or update a user, remove a user, work with teams, or load record payloads by UID as soon as IAuthentication is available.
For a full synced vault, shared-folder modeling as in VaultOnline, and the broadest integration surface, prefer IVaultSharedFolder / VaultOnline instead.
Scope and limitations
Shared folder skip-sync targets apps that do not run a full
sync_down/VaultOnlinetree. It supports selected shared-folder and record operations right after authentication.Users: Add, update, or remove individual users (email), as in the previous release.
Teams: You can add or remove a team on a shared folder and list teams available for sharing, without loading the vault.
Records: You can list record UIDs linked to a shared folder and fetch and decrypt records without syncing the vault.
DotNet SDK Prerequisites
Valid IAuthentication after login ( vault.Auth from VaultOnline or AuthenticateAndGetVault.GetAuthAsync from examples below or any object that implements IAuthentication interface)
Structures and classes
ISharedFolderSkipSyncDown
Interface for dependency injection and testing.
SharedFolderSkipSyncDown
Static entry points (GetSharedFolderAsync, PutUserToSharedFolderAsync, RemoveUserFromSharedFolderAsync).
SharedFolderSkipSyncDown.SharedFolderSkipSyncDownClient
Default implementation of ISharedFolderSkipSyncDown.
Use this path when your app needs to read shared folder metadata, invite or update a user, or remove a user from a shared folder as soon as authentication with keeper is completed.
For full vault integration (synced tree, teams, etc.), use IVaultSharedFolder / VaultOnline instead.
Get Shared Folder By UID
Loads one shared folder by UID. The request includes shared folders while returning shared folder along with user flows, team flows, and record UID listing.
DotNet SDK
Function : GetSharedFolderAsync
public static async Task<GetSharedFoldersResponse> GetSharedFolderAsync(
IAuthentication auth,
string sharedFolderUid)Returns null if the session cannot access the folder or the response has no shared folder entries.
Arguments:
Auth
Authenticated session with interface IAuthentication
SharedFolderUid
UID of shared Folder to get data of
PowerCommander
Command : Get-KeeperSharedFolderDetailsSkipSync
Fetches shared folder payload from the server (get_shared_folders) without a full vault sync.
-SharedFolderUid
Required. Shared folder UID.
-IncludePermissions
Include per-record CanEdit / CanShare, per-user and per-team flags, and folder key / default-permission fields. Omit for compact output.
-PassThru
Return the raw GetSharedFoldersResponse from the SDK.
Usage:
Get Records from Shared Folder
Returns distinct record UIDs attached to the folder. Empty if the folder is unavailable or has no records.
DotNet SDK
Function : GetRecordUidsFromSharedFolderAsync
Arguments:
-SharedFolderUid
Shared Folder UID to get records for
PowerCommander
Command : Get-KeeperSharedFolderRecordUidsSkipSync
Fetches shared folder payload from the server (get_shared_folders) without a full vault sync.
Flags:
-SharedFolderUid
Required.
Usage:
Sharing Shared Folder with user
Add or Update a user for shared folder. Optional IUserShareOptions (e.g. SharedFolderUserOptions) controls permissions and expiration.
DotNet SDK
Sharing with user
Function : PutUserToSharedFolderAsync
Options can be something like this
Arguments:
Auth
Authenticated session with interface IAuthentication
SharedFolderUid
UID of shared Folder in reference
userId
email of user to which we want to share
options
SharedFolderUserOptions object as shown above
PowerCommander
Command : Grant-KeeperSharedFolderUserSkipSync
-SharedFolder
Required (position 0).
-User
Required (position 1). User email / id as accepted by the API.
-ManageRecords, -ManageUsers
Optional booleans ($true / $false / omit).
-ExpireIn, -ExpireAt
Optional expiration (same semantics as other sharing cmdlets, e.g. Grant-KeeperRecordAccess).
-ShowDetail
After success, runs Get-KeeperSharedFolderRecordsSkipSync with -Mode SharedKey and prints a summary.
-PassThru
With -ShowDetail, returns the RecordDetailsSkipSyncResult from the listing step.
Usage:
Revoking Shared Folder From user
Remove access to a user. Optional IUserShareOptions (e.g. SharedFolderUserOptions) controls permissions and expiration.
DotNet SDK
Function : RemoveUserFromSharedFolderAsync
Arguments:
Auth
Authenticated session with interface IAuthentication
SharedFolderUid
UID of shared Folder in reference
userId
email of user to which we want to revoke
PowerCommander
Command: Revoke-KeeperSharedFolderUserSkipSync
Removes a user (RemoveUserFromSharedFolderAsync). Supports ShouldProcess.
-SharedFolder, -User
Required (positions 0 and 1).
-ShowDetail, -PassThru
Same pattern as grant.
Usage:
GetAvailableTeamsForShareAsync
Returns teams the current user may share with, using the same approach - without loading the vault.
DotNet SDK
Function : GetAvailableTeamsForShareAsync
Arguments:
Auth
Authenticated session with interface IAuthentication
PowerCommander
Command: Get-KeeperAvailableTeamsSkipSync
Lists teams available for sharing (get_available_teams).
Usage:
GetTeamUidFromNameAsync
Resolves a team display name to a team UID when the name is unique. Returns null if none match; throws if multiple teams match (use an explicit Team Name).
DotNet SDK
Function : GetTeamUidFromNameAsync
Arguments:
Auth
Authenticated session with interface IAuthentication
teamName
Resolve a unique team display name to a team UID
PowerCommander
Command: Get-KeeperTeamUidSkipSync
Resolves a team display name to a team UID when the name is unique.
-TeamName
Resolve a unique team display name to a team UID
Example:
PutTeamToSharedFolderAsync
Add or update a team on the shared folder. Pass a team UID or, when it uniquely identifies a team, a display name. GetTeamUidFromNameAsync helps when you need an explicit UID. Optional IUserShareOptions applies where supported.
DotNet SDK
Function : PutTeamToSharedFolderAsync
Options can be something like this
Arguments:
Auth
Authenticated session with interface IAuthentication
SharedFolderUid
UID of shared Folder to get data of
teamUid
team uid which we want to share
options
SharedFolderUserOptions object as shown above
PowerCommander
Command: Grant-KeeperSharedFolderTeamSkipSync
Adds or updates a team (PutTeamToSharedFolderAsync). Team may be a UID or a name the SDK can resolve. Supports ShouldProcess.
-SharedFolder, -Team
Required (positions 0 and 1).
-ManageRecords, -ManageUsers
Optional.
-ExpireIn, -ExpireAt
Optional.
-ShowDetail, -PassThru
Same as user grant.
Example:
RevokeTeamFromSharedFolderAsync
Revoke access of a team on the shared folder. Pass a team UID or, when it uniquely identifies a team, a display name. GetTeamUidFromNameAsync helps when you need an explicit UID. Optional IUserShareOptions applies where supported.
DotNet SDK
Function : RemoveTeamFromSharedFolderAsync
Arguments:
Auth
Authenticated session with interface IAuthentication
SharedFolderUid
UID of shared Folder to get data of
teamUid
team uid which we want to share
PowerCommander
Command : Revoke-KeeperSharedFolderTeamSkipSync
Removes a team (RemoveTeamFromSharedFolderAsync). Supports ShouldProcess.
-SharedFolder, -Team
Required.
-ShowDetail, -PassThru
Same pattern as user revoke.
Example:
Record payloads without vault sync
Use when you already have record UIDs (for example from GetRecordUidsFromSharedFolderAsync) and want decrypted KeeperRecord instances without a full vault sync.
DotNet SDK
Function : GetRecordsAsync
Arguments:
Auth
Authenticated session with interface IAuthentication
recordUids
record uid's
include
include record details
RecordDetailsInclude matches the API (default DATA_PLUS_SHARE). Use DataOnly or ShareOnly for a narrower payload.
Returns : RecordDetailsSkipSyncResult
Records
Successfully decrypted records
NoPermissionRecordUids
From noPermissionRecordUid
FailedRecordUids
Rows returned but decrypt/load failed (e.g. unsupported recordKeyType)
InvalidRecordUids
Caller strings that could not be decoded to binary record UIDs and were not sent
PowerCommander
Command : Get-KeeperRecordDetailsByUidSkipSync
-RecordUid
One or more record UIDs to load.
-SharedFolderUid
Shared folder UID. Required for SharedKey mode. In Auto mode, used as the fallback folder for records that fail owned-key decryption.
-Mode
Decryption strategy: Auto, OwnedKey, or SharedKey.
-Include
What data to return: DataPlusShare, DataOnly, or ShareOnly.
-PassThru
When set, returns the raw RecordDetailsSkipSyncResult object instead of formatted output.
Usage:
Example: authenticate, folder metadata, user share (no full vault sync)
Example: teams, record UIDs, and decrypt records (no full vault sync)
Last updated
Was this helpful?

