Skip to content
Draft
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
52ae8d8
feat(agent): add unigetui-broker crate for package policy evaluation
pacmancoder May 22, 2026
cac5cf0
feat(agent): integrate unigetui-broker as managed agent task
pacmancoder May 22, 2026
54153f9
feat(agent): uniget ui broker refactoring
pacmancoder May 22, 2026
bd2621f
feat(agent): fix uniget broker
pacmancoder May 25, 2026
123b7fb
WIP refactoring
pacmancoder May 25, 2026
abb1460
WIP refactoring round 2
pacmancoder May 25, 2026
79c2d84
Refined model
pacmancoder May 25, 2026
f84069b
Implemented new request to query installation status
pacmancoder May 25, 2026
f21a726
WIP: Fixed operation execution tracking
pacmancoder May 25, 2026
bb7d94e
WIP: updated schema and executor logic
pacmancoder May 26, 2026
9972d88
Ignore LoC for sample/asset files
pacmancoder May 26, 2026
3a0c835
WIP: Update schema to use PascalCase
pacmancoder Jun 2, 2026
9a4e317
WIP: PS5/PWSH managers support
pacmancoder Jun 3, 2026
d0dc141
WIP: Implemented missing operation options, minor refactoring
pacmancoder Jun 9, 2026
5d04080
WIP: schema consistency changes
pacmancoder Jun 9, 2026
b1f70ed
WIP: powershell changes
pacmancoder Jun 9, 2026
e5b135e
WIP: winapi safety comment
pacmancoder Jun 9, 2026
21e31ca
feat(unigetui-broker): axum+aide server + OpenAPI/C# client pipeline
pacmancoder Jun 9, 2026
5f72448
WIP: C# client for agent broker
pacmancoder Jun 12, 2026
911d300
WIP: CI changes
pacmancoder Jun 12, 2026
201ddcd
WIP: Fixed invalid uninstall params
pacmancoder Jun 15, 2026
9925f1b
WIP: refactoring
pacmancoder Jun 15, 2026
4a49778
WIP: Client
pacmancoder Jun 15, 2026
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
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,8 @@ devolutions-gateway/openapi/dotnet-client/docs/** linguist-generated merge=binar
devolutions-gateway/openapi/dotnet-subscriber/src/** linguist-generated merge=binary
devolutions-gateway/openapi/ts-angular-client/api/** linguist-generated merge=binary
devolutions-gateway/openapi/ts-angular-client/model/** linguist-generated merge=binary

# Sample assets and schema files produce huge LoC counts; exclude them from language statistics and
# treat them as generated files.
crates/unigetui-broker/assets/** linguist-generated
crates/unigetui-broker/schema/** linguist-generated
4 changes: 3 additions & 1 deletion .github/workflows/publish-libraries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
strategy:
fail-fast: false
matrix:
library: [ dotnet-client, dotnet-subscriber, utils, pedm-dotnet-client ]
library: [ dotnet-client, dotnet-subscriber, utils, pedm-dotnet-client, unigetui-broker-client ]
include:
- library: dotnet-client
libpath: ./devolutions-gateway/openapi/dotnet-client
Expand All @@ -50,6 +50,8 @@ jobs:
libpath: ./utils/dotnet
- library: pedm-dotnet-client
libpath: ./crates/devolutions-pedm/openapi/dotnet-client
- library: unigetui-broker-client
libpath: ./crates/unigetui-broker/dotnet

steps:
- name: Check out ${{ github.repository }}
Expand Down
93 changes: 89 additions & 4 deletions Cargo.lock

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

66 changes: 66 additions & 0 deletions crates/unigetui-broker/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
[package]
name = "unigetui-broker"
version = "0.1.0"
edition = "2024"
authors = ["Devolutions Inc. <infos@devolutions.net>"]
description = "UniGetUI package broker - policy evaluation and command execution over named pipe"
publish = false

[lints]
workspace = true

[dependencies]
anyhow = "1"
async-trait = "0.1"
devolutions-gateway-task = { path = "../devolutions-gateway-task" }
axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "original-uri", "matched-path"] }
aide = { version = "0.14", features = ["axum", "axum-json"] }
tower = "0.5"
tower-service = "0.3"
tower-http = { version = "0.5", features = ["timeout"] }
hyper = { version = "1", features = ["http1", "server"] }
hyper-util = { version = "0.1", features = ["tokio", "server", "server-auto", "service"] }
http-body-util = "0.1"
bytes = "1"
schemars = { version = "0.8", features = ["chrono"] }
semver = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
notify = { version = "7", default-features = false, features = ["macos_kqueue"] }
thiserror = "2"
tokio = { version = "1.52", features = ["full"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
url = "2"
uuid = { version = "1.17", features = ["v4"] }
chrono = { version = "0.4", features = ["serde"] }
regex = "1"

[target.'cfg(windows)'.dependencies]
win-api-wrappers = { path = "../win-api-wrappers" }
windows = { version = "0.61", features = [
"Win32_Security",
"Win32_Security_Authorization",
"Win32_System_Pipes",
"Win32_System_IO",
"Win32_Storage_FileSystem",
"Win32_Foundation",
"Win32_System_Threading",
"Win32_System_RemoteDesktop",
"Win32_System_Environment",
"Win32_UI_WindowsAndMessaging",
] }
tokio-util = { version = "0.7", features = ["compat"] }

[[bin]]
name = "unigetui-broker-standalone"
path = "tools/standalone.rs"

[[bin]]
name = "generate-broker-schema"
path = "tools/generate_schema.rs"

[[bin]]
name = "generate-broker-openapi"
path = "tools/generate_openapi.rs"
134 changes: 134 additions & 0 deletions crates/unigetui-broker/assets/samples/corporate-allowlist.policy.json

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

Loading