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

The final oxidation 🥊 🥇 #4515

Merged
merged 132 commits into from
Jun 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
fe8ebf0
Make tests_fixtures crate a single-no-brainer-one-liner™
touilleMan Apr 20, 2023
cc9d4dd
Make explicit the list of crates in Cargo.toml (simplify work between…
touilleMan Apr 20, 2023
23bd06a
Simplify boxing in DataError&PkiEnrollmentLocalPendingError
touilleMan Apr 20, 2023
2bf3a24
Make libparsec_tests_macros only depend on libparsec_tests_fixtures (…
touilleMan Apr 20, 2023
3fbb4e6
Add dedicated alias for numeric types used in serialization format
touilleMan Apr 20, 2023
f5013ae
Re-expose pretty_assertions in libparsec_tests_fixtures
touilleMan Apr 21, 2023
d337153
Add libparsec_platform_storage2, temporary crate containing new UserS…
touilleMan Apr 21, 2023
0124f49
Make testbed template generation lazy to improve cargo nextest perfs
touilleMan Apr 21, 2023
30c3be5
Add testbed support to client_connection
touilleMan Apr 21, 2023
be05880
Improve client connection testbed support
touilleMan Apr 22, 2023
33e9fff
Fix rust tests crashing when run in parallel while trying to start mu…
touilleMan Apr 22, 2023
2a255a5
Minor style changes in tests_fixtures & testbed crates
touilleMan Apr 22, 2023
3edf8e0
Improve parsec_test macro and remove need for user crate to depend on…
touilleMan Apr 23, 2023
aa2ba07
Improve testbed send hook in client_connection
touilleMan Apr 23, 2023
4482e36
Improve platform_storage2: add certif storage and workspace_storage_n…
touilleMan Apr 24, 2023
0f49319
First add to user ops stuff in client crate
touilleMan Apr 24, 2023
c7f33c9
WIP: Add oxidation/libparsec/crates/client/src/user_ops/merge.rs
touilleMan Apr 24, 2023
136faa9
WIP: random changes in client
touilleMan Apr 24, 2023
af5faba
Fix Python bindings after client connection changes
touilleMan Apr 25, 2023
5be0956
Make serialization_format's `parsec_protocol_cmds_family` ignores non…
touilleMan Apr 25, 2023
faaa1cb
Add `latest` alias for last protocol major version module in libparse…
touilleMan Apr 25, 2023
ce8b719
Rework serialization_format type parsing (needed for future auto-gene…
touilleMan Apr 25, 2023
2169e38
Auto-generate python bindings for protocol
touilleMan Apr 26, 2023
b00f961
Move UnknownStatus in serialization_format's protocol for better code…
touilleMan Apr 28, 2023
6e1265b
Change ProtocolRequest to avoid clone on dump, replace AnyCmdReq::dum…
touilleMan Apr 29, 2023
6dff4d2
Fix typing info for python protocol bindings
touilleMan Apr 30, 2023
f29a4bc
WIP: Correct python code, backend tests are passing (except test_comp…
touilleMan Apr 30, 2023
320d7c0
Minor correction in protocol schema
touilleMan May 2, 2023
3a32374
remove useless BackendEventUserRevoked&BackendEventDeviceRevoked
touilleMan May 2, 2023
cd704eb
Move load template code from run_testbed_server.py into `BackendApp.t…
touilleMan May 2, 2023
d3f946a
Introduce APIv4(draft), just a clone of APIv3 for the moment.
touilleMan May 3, 2023
0b1e4c6
Add `introduced_in` field for response in protocol schema
touilleMan May 2, 2023
27c3a98
Update APIv4(draft) schemas
touilleMan May 3, 2023
1d32a72
Update APIv4(draft) schemas: add `certificate_get`
touilleMan May 3, 2023
567b8ff
Update APIv4(draft) schemas: add `user_update` cmd and `UserUpdateCer…
touilleMan May 3, 2023
fd34a88
Update protocol pyi typing info
touilleMan May 4, 2023
05395dd
Implement UserUpdateCertificate in libparsec_types and in Python bind…
touilleMan May 3, 2023
706f45c
WIP: Fix server tests
touilleMan May 3, 2023
2fd8dbb
Fix cmds use after changes in APIv4(draft) makes it incompatible with…
touilleMan May 3, 2023
6107ee4
Replace BackendEventUserRevoked by BackendEventUserUpdatedOrRevoked
touilleMan May 3, 2023
e007f9f
Rework SSE API and make it only available for APIv4
touilleMan May 3, 2023
154593a
WIP: poc implementation of user_update command in backend
touilleMan May 3, 2023
dcd9d7d
Add SSE support to AuthenticatedCmds in client_connection crate
touilleMan May 4, 2023
b897bcd
Improve testbed error message when providing trying to fetch the wron…
touilleMan May 4, 2023
abf7f03
Correct BackendEvent.organization_id property to be placed in the mot…
touilleMan May 4, 2023
74e2e1f
Rust tests enable testbed server by default (given skipped test are v…
touilleMan May 4, 2023
f2bec36
Fix testbed server incorrectly ignoring events in `events_listen` com…
touilleMan May 4, 2023
34f7837
Implement the event bus in libparsec_client
touilleMan May 5, 2023
32287f3
Use bytes::Bytes instead of Vec<u8> in serialization_format
touilleMan May 6, 2023
ec2a566
Move platform_device_loader's tests to remove useless test_ prefix
touilleMan May 6, 2023
1d2db1f
wip client
touilleMan May 6, 2023
eb3152d
Move protocol's tests to remove useless `test_` prefix
touilleMan May 6, 2023
e26f646
Move crypto's tests to remove useless `test_` prefix
touilleMan May 6, 2023
c49eab9
Move platform_http_proxy's tests to remove useless `test_` prefix
touilleMan May 6, 2023
dce7d83
Move types's tests to remove useless `test_` prefix
touilleMan May 6, 2023
4095afc
Rename manifest_unverified_load -> manifest_unsecure_load, we want to…
touilleMan May 6, 2023
b39ba2e
Zero-copy on libparsec_crypto::VerifyKey::verify when returning the m…
touilleMan May 6, 2023
794b35e
libparsec_crypto::VerifyKey::unsecure_unwrap returns both signature a…
touilleMan May 6, 2023
ca46fc7
Remove useless Manifest::unsecure_load & Manifest::decrypt_and_load
touilleMan May 6, 2023
7b2e231
Replace Vec<u8> by Bytes in testbed
touilleMan May 7, 2023
c125461
Rework unsecure_load method for certificates to make it foolproof
touilleMan May 7, 2023
2b624f7
Finish new certificate storage
touilleMan May 7, 2023
035c04d
Expose user/workspace/certificate sub modules in platform_storage to …
touilleMan May 7, 2023
f898b2e
Rework errors in platform_storage
touilleMan May 7, 2023
380fe2f
wip
touilleMan May 7, 2023
1ad0ad3
Rework errors in platform_storage with anyhow
touilleMan May 7, 2023
632380f
Rename CommandError -> ConnectionError given it is from the client_co…
touilleMan May 8, 2023
cf573a1
Improve DataError to have proper handling of crypto errors and more e…
touilleMan May 8, 2023
aad693d
Bump tokio to 1.28.0 (need tokio::sync::watch::Receiver::wait_for)
touilleMan May 9, 2023
d4223d4
Add `EventBus::wait_server_online`
touilleMan May 9, 2023
6cd9c54
Finish certificates monitor, certificates ops only missing consistenc…
touilleMan May 9, 2023
e2d500e
Fix typos
touilleMan May 9, 2023
e72f164
Remove libparsec_core&libparsec_core_fs (will be replaced by libparse…
touilleMan Jun 6, 2023
b36f2d7
Update libparsec_client
touilleMan Jun 6, 2023
44c8503
Add API version support to client_connection
touilleMan Jun 6, 2023
2638696
Rework certificate storage
touilleMan Jun 6, 2023
0eab509
Add comment in local_device.json5 schema about profile field interrac…
touilleMan Jun 6, 2023
0d4d511
Remove websocket API handshake code from libparsec_protocol (never us…
touilleMan Jun 6, 2023
bc181fa
Improve libparsec_types
touilleMan Jun 6, 2023
e97d6b2
Update APIv4(draft) schemas:
touilleMan Jun 6, 2023
f815a55
Update backend with changes on APIv4
touilleMan Jun 6, 2023
44f288d
Add libparsec_core to libparsec & libparsec_client_high_level_api
touilleMan Jun 6, 2023
6801091
Update python bindings
touilleMan Jun 6, 2023
a5ee72c
Update .pyi files
touilleMan Jun 6, 2023
a69875b
fix TimestampGenerator clippyness
touilleMan Jun 2, 2023
da37ab6
Replace DynError by anyhow::Error in libparsec_client::RunningDevice:…
touilleMan Jun 2, 2023
c2e6d33
Fix clippyness for libparsec_platform_storage2
touilleMan Jun 2, 2023
b12154e
Replace libparsec_core by libparsec_client in libparsec_high_level_api
touilleMan Jun 2, 2023
05344c9
Improve electron/web bindings: add ErrorVariant & support for tuple/u…
touilleMan Jun 5, 2023
ddeab29
Fix Python bindings
touilleMan Jun 5, 2023
e33c379
Remove parsec core code & tests
touilleMan Jun 5, 2023
f4d0b9a
Improve libparsec_crypto::VerifyKey::unsecure_unwrap handling of too …
touilleMan Jun 5, 2023
eb71d78
Add unstable feature to pretty_assertion to have assert_match!()
touilleMan Jun 5, 2023
1543ce7
Merge remote-tracking branch 'origin/master' into castor
touilleMan Jun 6, 2023
6c02396
Fix clippyness in libparsec_client
touilleMan Jun 6, 2023
f4bc929
Monthly retreive -> retrieve fix
touilleMan Jun 6, 2023
2e1ed85
Remove useless client-related stuff in python bindings
touilleMan Jun 6, 2023
9c5c510
Remove DeviceFileType custom decoding from python msgpack unpacking
touilleMan Jun 6, 2023
7985f48
Remove ApiVersion custom extension from python msgpack packing/unpacking
touilleMan Jun 6, 2023
bf28638
Remove client related code from python binding
touilleMan Jun 6, 2023
0c2df83
I don't care they said you're not a word, I love you as you are "endup"
touilleMan Jun 6, 2023
78a0a82
Fix SecretKey::from_password rustcrypto implementation in libparsec_c…
touilleMan Jun 6, 2023
3104543
Fix init of db handler in parsec/backend/cli/sequester.py
touilleMan Jun 6, 2023
9efafc4
Remove useless parsec/test_utils/workspacefs.py
touilleMan Jun 6, 2023
8e50e11
Correct typing in parsec/event_bus.py
touilleMan Jun 6, 2023
6edacdd
Remove now useless UNSTABLE_OXIDIZED_CLIENT_CONNECTION feature flag
touilleMan Jun 6, 2023
9720b4d
Temporary stopgap in backend postgresql implementation
touilleMan Jun 6, 2023
30ca107
Remove client tests from the Python CI part
touilleMan Jun 6, 2023
717f6fb
Update pyi for protocole bindings
touilleMan Jun 6, 2023
9878566
Remove run_testenv.* (must be rewritten given Python client is no lon…
touilleMan Jun 7, 2023
3db8f5f
Fix typing smells in server code
touilleMan Jun 7, 2023
670ffe5
Cleanup core stuff from CI Python
touilleMan Jun 7, 2023
21dbb79
Cleanup core stuff from scripts
touilleMan Jun 7, 2023
acc21d2
Cleanup core stuff from pyproject.toml
touilleMan Jun 7, 2023
4637bc9
Cleanup core stuff from Python packaging CI
touilleMan Jun 7, 2023
aecc45b
Cleanup use of `misc/generate_pyqt.py` (no longer needed)
touilleMan Jun 7, 2023
20feadb
Remove core related in various config files and packaging
touilleMan Jun 7, 2023
9064206
Cleanup core references
touilleMan Jun 7, 2023
c8fc7a7
Rust tests's testbed support both TESTBED_SERVER and TESTBED_SERVER_U…
touilleMan Jun 7, 2023
f09e8d7
Fix clippy smell in src/backend_events.rs
touilleMan Jun 7, 2023
0568437
Fix Ruff codesmells in Python
touilleMan Jun 7, 2023
18e0395
Update Cargo.toml's workspace default-member to be able to do `cargo …
touilleMan Jun 7, 2023
13e7fda
Introduce misc/libparsec_crates_flags.py to easily select which crate…
touilleMan Jun 7, 2023
678eeb5
Add testbed server service in CI for Rust tests
touilleMan Jun 7, 2023
6098008
Fix (well stub...) libparsec for wasm32, cleanup Python bindings & un…
touilleMan Jun 8, 2023
4ac071c
Small typing fixes in misc/license_headers.py & misc/gen_protocol_typ…
touilleMan Jun 8, 2023
337d559
Move Python codebase to `server` folder
touilleMan Jun 8, 2023
2379307
MANIFEST.in ??? I though you died a long time ago !
touilleMan Jun 9, 2023
19c9591
Remove oxidation/generate_test_data/ (we don't need to re-generate th…
touilleMan Jun 9, 2023
cb47a24
Move libparsec & bindings out of oxidation folder
touilleMan Jun 9, 2023
6fe5a66
Fix vite_plugin_wasm_pack now that web bindings contains internal js …
touilleMan Jun 9, 2023
4a87ecb
Merge branch 'master' into castor
touilleMan Jun 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 0 additions & 5 deletions .babel.cfg

This file was deleted.

1 change: 0 additions & 1 deletion .cspell/cspell.config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ cache:
useGitignore: true
allowCompoundWords: true
ignorePaths:
- "**/parsec/core/resources/default_*.ignore"
- "**/*.svg"
- "**/docs/figures/*.svg"
- "**/windows-icon-handler/**/*.vcxproj"
Expand Down
6 changes: 6 additions & 0 deletions .cspell/custom-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ linuxsys
Ljava
llabel
localdb
localns
LowLevel
lproj
lsregister
Expand All @@ -226,6 +227,7 @@ metaraw
miniserde
mnone
moff
monomorphization
mountpoint
MountPoints
msgid
Expand All @@ -235,12 +237,15 @@ multibytes
mycapacitorapp
myclass
Nanos
ntns
ntics
napi
newsfragment
newsfragments
Niño
nmspc
nocapture
noserver
NONCEBYTES
noopener
noreferrer
Expand All @@ -260,6 +265,7 @@ oneofschema
Onone
OpsLimit
ORGANIZATIONID
orgid
oscrypt
oscrypto
OSXFUSE
Expand Down
8 changes: 4 additions & 4 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ package-lock.json @Scille/js-code-owners

# The bindings folder contains rust code that is used by the `web`, `electron` & `android`.
# The responsability is shared between the js & rust teams.
/oxidation/bindings/ @Scille/js-code-owners @Scille/rust-code-owners
/bindings/ @Scille/js-code-owners @Scille/rust-code-owners


# Rust team is responsible for the rust code.
/oxidation/libparsec/ @Scille/rust-code-owners
/libparsec/ @Scille/rust-code-owners
/src @Scille/rust-code-owners
rust-toolchain.toml @Scille/rust-code-owners
Cargo.toml @Scille/rust-code-owners
Expand All @@ -42,9 +42,9 @@ mypy.ini @Scille/python-code-owners
setup.cfg @Scille/python-code-owners

# Ops team is responsible for the CI & the packaging system.
/.github/ @Scille/ops-code-owners
/.github/ @Scille/ops-code-owners
/packaging/ @Scille/ops-code-owners
/misc/ @Scille/ops-code-owners

# @touilleMan is responsible for the CODEOWNERS file ;)
/.github/CODEOWNERS @touilleMan
/.github/CODEOWNERS @touilleMan
6 changes: 5 additions & 1 deletion .github/actions/setup-python-poetry/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ inputs:
description: Poetry version to install
required: true

project-path:
description: Path to the directory containing the pyproject.toml
required: true

runs:
using: composite
steps:
Expand Down Expand Up @@ -49,4 +53,4 @@ runs:

- name: (*Nix) Configure poetry to use the installed python
shell: ${{ runner.os != 'Windows' && 'bash' || 'pwsh' }}
run: poetry env use ${{ steps.setup-python.outputs.python-path }}
run: poetry -C ${{ inputs.project-path }} env use ${{ steps.setup-python.outputs.python-path }}
6 changes: 3 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ updates:
rebase-strategy: disabled

- package-ecosystem: npm
directory: /oxidation/bindings/electron
directory: /bindings/electron
pull-request-branch-name:
separator: "-"
schedule:
Expand All @@ -110,7 +110,7 @@ updates:
rebase-strategy: disabled

- package-ecosystem: npm
directory: /oxidation/bindings/web
directory: /bindings/web
pull-request-branch-name:
separator: "-"
schedule:
Expand Down Expand Up @@ -147,7 +147,7 @@ updates:
rebase-strategy: disabled

- package-ecosystem: gradle
directory: /oxidation/bindings/android
directory: /bindings/android
pull-request-branch-name:
separator: "-"
schedule:
Expand Down
8 changes: 4 additions & 4 deletions .github/filters/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
rust-libparsec: &rust-libparsec oxidation/libparsec/**
rust-libparsec: &rust-libparsec libparsec/**

rust-dependencies-workspace: &rust-dependencies-workspace
- Cargo.toml
Expand All @@ -10,19 +10,19 @@ rust-python-binding: &rust-python-binding src/**

# TODO: We currently don't test the electron application
# So we don't have to watch the electron binding (likewise for the client code related to electron)
# rust-electron-binding: &rust-electron-binding oxidation/bindings/electron
# rust-electron-binding: &rust-electron-binding bindings/electron
# new-client-electron: &new-client-electron: oxidation/client/electron

# TODO: We currently don't test the android application
# So we don't have to watch the android binding (likewise for the client code related to android)
# rust-android-binding: &rust-android-binding oxidation/bindings/android
# rust-android-binding: &rust-android-binding bindings/android
# new-client-android: &new-client-android: oxidation/client/android

# TODO: We currently don't test the ios application
# So we don't have to watch the client code related to the ios application
# new-client-ios: &new-client-ios oxidation/client/ios

rust-web-binding: &rust-web-binding oxidation/bindings/web/**
rust-web-binding: &rust-web-binding bindings/web/**

any-python:
- "**.py"
Expand Down
10 changes: 5 additions & 5 deletions .github/filters/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ python-analyze:
- *python
- *python-dependencies-project

rust-android-binding: &rust-android-binding oxidation/bindings/android/**
rust-android-binding: &rust-android-binding bindings/android/**

android: &android oxidation/client/android/**

android-dependencies-project: &android-dependencies-project
# Bindings configuration
- oxidation/bindings/android/gradle/verification-metadata.xml
- oxidation/bindings/android/*.gradle
- oxidation/bindings/android/*.lockfile
- oxidation/bindings/android/*.properties
- bindings/android/gradle/verification-metadata.xml
- bindings/android/*.gradle
- bindings/android/*.lockfile
- bindings/android/*.properties
# Client configuration
- oxidation/client/android/gradle/verification-metadata.xml
- oxidation/client/android/*.gradle
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/sink_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def naturalize(bytes_size: int) -> str:


def gh_api(url: str, method: Optional[str] = "GET"):
extra_args = [f"--header='Accept: application/json'"]
extra_args = ["--header='Accept: application/json'"]
if method is not None:
extra_args.append(f"--method={method}")
cmd_args = ["gh", "api", *extra_args, url]
Expand Down
Loading