Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Add cli command mount_realm_export; #9603

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b21e510
Expose InvalidDeviceID & InvalidUserID error types
touilleMan Feb 14, 2025
08dce86
Add `From<ChildManifest> for ArcChildManifest`
touilleMan Feb 14, 2025
ffbcc14
Add unique indexes in realm export db
touilleMan Feb 14, 2025
64462d3
Add test on WorkspaceHistoryOps realm_id/organization_id/timestamp_lo…
touilleMan Feb 14, 2025
a30a55c
Add realm export data access implementation for WorkspaceHistoryOps
touilleMan Feb 14, 2025
e345168
Correct web bindings generator templates handling of list/set of stru…
touilleMan Feb 14, 2025
59cc41a
Add libparsec bindings for realm export based workspace history 2
touilleMan Feb 14, 2025
2f4d56f
Re-generate electron&web bindings
touilleMan Feb 14, 2025
61b4290
Remove dead code `libparsec/crates/client/tests/unit/workspace_histor…
touilleMan Feb 15, 2025
690a754
Add an export of workspace_history testbed template in `server/tests/…
touilleMan Feb 15, 2025
d81617f
Fix comment in `libparsec/crates/client/tests/unit/workspace_history/…
touilleMan Feb 15, 2025
6571880
Add `TmpPath::create`
touilleMan Feb 16, 2025
1037802
Add support for realm export access to `libparsec/crates/client/tests…
touilleMan Feb 16, 2025
e688c49
Fix SQL in `server/parsec/realm_export.py`
touilleMan Feb 16, 2025
298c2d2
Update sequestered testbed template
touilleMan Feb 17, 2025
44f63af
Bump testbed server
touilleMan Feb 17, 2025
f16d1b8
Add libparsec_platform_mountpoint history mountpoint support for UNIX
touilleMan Feb 6, 2025
1b16330
Add basic tests for libparsec_platform_mountpoint's history mountpoint
touilleMan Feb 6, 2025
e4a682d
Add libparsec_platform_mountpoint's `history` example
touilleMan Feb 6, 2025
7ab03ce
Add libparsec_platform_mountpoint's `realm_export_for_sequester` & `r…
touilleMan Feb 6, 2025
7cdb816
Add log in FUSE mountpoint when operation cannot complete due to inco…
touilleMan Feb 17, 2025
b67f04b
[WIP] Add cli command mount_realm_export;
AureliaDolo Feb 10, 2025
b8d7ed2
[CLI] Add test for mount_realm_export.
AureliaDolo Feb 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci-rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
TESTBED_SERVER: http://localhost:6777
services:
parsec-testbed-server:
image: ghcr.io/scille/parsec-cloud/parsec-testbed-server:3.2.5-a.0.dev.20135.bb30d4e
image: ghcr.io/scille/parsec-cloud/parsec-testbed-server:3.2.5-a.0.dev.20136.298c2d2
ports:
- 6777:6777
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
# https://github.com/Scille/parsec-cloud/pkgs/container/parsec-cloud%2Fparsec-testbed-server
services:
parsec-testbed-server:
image: ghcr.io/scille/parsec-cloud/parsec-testbed-server:3.2.5-a.0.dev.20135.bb30d4e
image: ghcr.io/scille/parsec-cloud/parsec-testbed-server:3.2.5-a.0.dev.20136.298c2d2
ports:
- 6777:6777
steps:
Expand Down
15 changes: 15 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ members = [
"libparsec/crates/platform_device_loader",
"libparsec/crates/platform_ipc",
"libparsec/crates/platform_mountpoint",
"libparsec/crates/platform_realm_export",
"libparsec/crates/platform_storage",
"libparsec/crates/protocol",
"libparsec/crates/serialization_format",
Expand All @@ -34,6 +35,7 @@ default-members = [
"libparsec/crates/platform_device_loader",
"libparsec/crates/platform_ipc",
"libparsec/crates/platform_mountpoint",
"libparsec/crates/platform_realm_export",
"libparsec/crates/platform_storage",
"libparsec/crates/protocol",
"libparsec/crates/serialization_format",
Expand Down Expand Up @@ -92,6 +94,7 @@ libparsec_platform_device_loader = { path = "libparsec/crates/platform_device_lo
libparsec_platform_http_proxy = { path = "libparsec/crates/platform_http_proxy", default-features = false }
libparsec_platform_ipc = { path = "libparsec/crates/platform_ipc", default-features = false }
libparsec_platform_mountpoint = { path = "libparsec/crates/platform_mountpoint", default-features = false }
libparsec_platform_realm_export = { path = "libparsec/crates/platform_realm_export", default-features = false }
libparsec_platform_storage = { path = "libparsec/crates/platform_storage", default-features = false }
libparsec_protocol = { path = "libparsec/crates/protocol", default-features = false }
libparsec_serialization_format = { path = "libparsec/crates/serialization_format", default-features = false }
Expand Down
130 changes: 85 additions & 45 deletions bindings/electron/src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1459,50 +1459,6 @@ export type ClientStartWorkspaceError =
| ClientStartWorkspaceErrorWorkspaceNotFound


// ClientStartWorkspaceHistory2Error
export interface ClientStartWorkspaceHistory2ErrorInternal {
tag: "Internal"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorInvalidCertificate {
tag: "InvalidCertificate"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorInvalidKeysBundle {
tag: "InvalidKeysBundle"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorInvalidManifest {
tag: "InvalidManifest"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorNoHistory {
tag: "NoHistory"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorNoRealmAccess {
tag: "NoRealmAccess"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorOffline {
tag: "Offline"
error: string
}
export interface ClientStartWorkspaceHistory2ErrorStopped {
tag: "Stopped"
error: string
}
export type ClientStartWorkspaceHistory2Error =
| ClientStartWorkspaceHistory2ErrorInternal
| ClientStartWorkspaceHistory2ErrorInvalidCertificate
| ClientStartWorkspaceHistory2ErrorInvalidKeysBundle
| ClientStartWorkspaceHistory2ErrorInvalidManifest
| ClientStartWorkspaceHistory2ErrorNoHistory
| ClientStartWorkspaceHistory2ErrorNoRealmAccess
| ClientStartWorkspaceHistory2ErrorOffline
| ClientStartWorkspaceHistory2ErrorStopped


// ClientStopError
export interface ClientStopErrorInternal {
tag: "Internal"
Expand Down Expand Up @@ -2739,6 +2695,21 @@ export type WorkspaceHistory2OpenFileError =
| WorkspaceHistory2OpenFileErrorStopped


// WorkspaceHistory2RealmExportDecryptor
export interface WorkspaceHistory2RealmExportDecryptorSequesterService {
tag: "SequesterService"
sequester_service_id: string
private_key_pem_path: string
}
export interface WorkspaceHistory2RealmExportDecryptorUser {
tag: "User"
access: DeviceAccessStrategy
}
export type WorkspaceHistory2RealmExportDecryptor =
| WorkspaceHistory2RealmExportDecryptorSequesterService
| WorkspaceHistory2RealmExportDecryptorUser


// WorkspaceHistory2SetTimestampOfInterestError
export interface WorkspaceHistory2SetTimestampOfInterestErrorEntryNotFound {
tag: "EntryNotFound"
Expand Down Expand Up @@ -2798,6 +2769,70 @@ export type WorkspaceHistory2SetTimestampOfInterestError =
| WorkspaceHistory2SetTimestampOfInterestErrorStopped


// WorkspaceHistory2StartError
export interface WorkspaceHistory2StartErrorCannotOpenRealmExportDatabase {
tag: "CannotOpenRealmExportDatabase"
error: string
}
export interface WorkspaceHistory2StartErrorIncompleteRealmExportDatabase {
tag: "IncompleteRealmExportDatabase"
error: string
}
export interface WorkspaceHistory2StartErrorInternal {
tag: "Internal"
error: string
}
export interface WorkspaceHistory2StartErrorInvalidCertificate {
tag: "InvalidCertificate"
error: string
}
export interface WorkspaceHistory2StartErrorInvalidKeysBundle {
tag: "InvalidKeysBundle"
error: string
}
export interface WorkspaceHistory2StartErrorInvalidManifest {
tag: "InvalidManifest"
error: string
}
export interface WorkspaceHistory2StartErrorInvalidRealmExportDatabase {
tag: "InvalidRealmExportDatabase"
error: string
}
export interface WorkspaceHistory2StartErrorNoHistory {
tag: "NoHistory"
error: string
}
export interface WorkspaceHistory2StartErrorNoRealmAccess {
tag: "NoRealmAccess"
error: string
}
export interface WorkspaceHistory2StartErrorOffline {
tag: "Offline"
error: string
}
export interface WorkspaceHistory2StartErrorStopped {
tag: "Stopped"
error: string
}
export interface WorkspaceHistory2StartErrorUnsupportedRealmExportDatabaseVersion {
tag: "UnsupportedRealmExportDatabaseVersion"
error: string
}
export type WorkspaceHistory2StartError =
| WorkspaceHistory2StartErrorCannotOpenRealmExportDatabase
| WorkspaceHistory2StartErrorIncompleteRealmExportDatabase
| WorkspaceHistory2StartErrorInternal
| WorkspaceHistory2StartErrorInvalidCertificate
| WorkspaceHistory2StartErrorInvalidKeysBundle
| WorkspaceHistory2StartErrorInvalidManifest
| WorkspaceHistory2StartErrorInvalidRealmExportDatabase
| WorkspaceHistory2StartErrorNoHistory
| WorkspaceHistory2StartErrorNoRealmAccess
| WorkspaceHistory2StartErrorOffline
| WorkspaceHistory2StartErrorStopped
| WorkspaceHistory2StartErrorUnsupportedRealmExportDatabaseVersion


// WorkspaceHistory2StatEntryError
export interface WorkspaceHistory2StatEntryErrorEntryNotFound {
tag: "EntryNotFound"
Expand Down Expand Up @@ -3796,7 +3831,7 @@ export function clientStartWorkspace(
export function clientStartWorkspaceHistory2(
client: number,
realm_id: string
): Promise<Result<number, ClientStartWorkspaceHistory2Error>>
): Promise<Result<number, WorkspaceHistory2StartError>>
export function clientStop(
client: number
): Promise<Result<null, ClientStopError>>
Expand Down Expand Up @@ -4066,6 +4101,11 @@ export function workspaceHistory2SetTimestampOfInterest(
workspace_history: number,
toi: number
): Promise<Result<null, WorkspaceHistory2SetTimestampOfInterestError>>
export function workspaceHistory2StartWithRealmExport(
config: ClientConfig,
export_db_path: string,
decryptors: Array<WorkspaceHistory2RealmExportDecryptor>
): Promise<Result<number, WorkspaceHistory2StartError>>
export function workspaceHistory2StatEntry(
workspace_history: number,
path: string
Expand Down
Loading
Loading