Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
78599b0
daemon: Move request validation to gateway service
iinuwa Mar 13, 2026
ace4ffc
daemon: Allow manually specifying trusted clients for development
iinuwa Mar 12, 2026
e1de393
daemon: Add portal as alternative entrypoint
iinuwa Mar 12, 2026
9565661
wip: Return PortalResult as single struct
iinuwa Mar 13, 2026
be6ee42
Reorder parent window arguments
iinuwa Mar 13, 2026
7aec096
demo_client: Update client to point to portal interface
iinuwa Mar 13, 2026
53465d9
squash: daemon: fix response/result serialization
iinuwa Mar 13, 2026
3d93ca0
daemon: Rename portal interface with "handler" terminology
iinuwa Mar 13, 2026
eafb1c0
daemon: Don't restrict GetCredential to a single credential type
iinuwa Apr 16, 2026
6424437
daemon: Remove unused request handle
iinuwa Apr 16, 2026
49d7384
demo_client: Point to Credential portal interface
iinuwa Apr 16, 2026
cf92712
demo_client: Convert to asyncio and point to xdp interface
iinuwa Apr 17, 2026
0c489f7
daemon: Use HTTPS origin for apps too
iinuwa Apr 17, 2026
fae740f
Remove client capapbilities from handler; let xdp handle it directly …
iinuwa Apr 18, 2026
0cacb04
daemon: Move portal request parameters into options method parameter
iinuwa Apr 18, 2026
2462b3e
demo_client: Rename portal interface
iinuwa Apr 18, 2026
8d86c5d
docs: Update docs to reflect portal gateway API changes
iinuwa Apr 19, 2026
6f42739
Remove Client Capabilities method from API doc
iinuwa Apr 19, 2026
504b2b0
daemon: Move origin and type to top-level parameter
iinuwa Apr 21, 2026
0f01e79
daemon: append portal handler-specific parameters to request
iinuwa Apr 21, 2026
33312a6
daemon: reference activation_token
iinuwa Apr 21, 2026
d784de7
Remove client capabilities test
iinuwa Apr 21, 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
19 changes: 14 additions & 5 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@
"program": "${workspaceFolder}/build/credentialsd/src/credentialsd",
"args": [],
"env": {
"RUST_LOG": "credentialsd=debug,libwebauthn=debug,libwebauthn::webauthn=debug,libwebauthn=warn,libwebauthn::proto::ctap2::preflight=debug,libwebauthn::transport::channel=debug,zbus::object_server::debug,zbus=debug"
"RUST_LOG": "credentialsd=debug,libwebauthn=debug,libwebauthn::webauthn=debug,libwebauthn=warn,libwebauthn::proto::ctap2::preflight=debug,libwebauthn::transport::channel=debug,zbus::object_server::debug,zbus=debug",
"CREDSD_TRUSTED_CALLERS": "/usr/bin/python3.14",
"CREDSD_TRUSTED_APP_IDS": "app:xyz.iinuwa.credentialsd.DemoCredentialsUi",
},
"sourceLanguages": ["rust"],
"sourceLanguages": [
"rust"
],
"cwd": "${workspaceFolder}",
"preLaunchTask": "Meson: Build Daemon"
},
Expand All @@ -27,15 +31,20 @@
"GSETTINGS_SCHEMA_DIR": "${workspaceFolder}/build/credentialsd-ui/data",
"RUST_LOG": "credentialsd_ui=debug,zbus::trace,zbus::object_server::debug"
},
"sourceLanguages": ["rust"],
"sourceLanguages": [
"rust"
],
"cwd": "${workspaceFolder}",
"preLaunchTask": "Meson: Build UI"
},
],
"compounds": [
{
"name": "Server/Client",
"configurations": ["Debug UI (credentialsd-ui)", "Debug Daemon (credentialsd)"]
"configurations": [
"Debug UI (credentialsd-ui)",
"Debug Daemon (credentialsd)"
]
}
]
}
}
4 changes: 3 additions & 1 deletion credentialsd-common/src/model.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ pub struct Credential {
pub username: Option<String>,
}

/// Client Capabilities, as defined in
/// [WebAuthn](https://www.w3.org/TR/webauthn-3/#enumdef-clientcapability).
#[derive(SerializeDict, Type)]
#[zvariant(signature = "dict", rename_all = "camelCase")]
pub struct GetClientCapabilitiesResponse {
Expand Down Expand Up @@ -110,7 +112,7 @@ pub struct RequestingApplication {
/// The name of the application.
pub name: Optional<String>,

/// The PID of the applicatoin
/// The PID of the application
pub pid: u32,
}

Expand Down
14 changes: 10 additions & 4 deletions credentialsd-common/src/server.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! Types for serializing across D-Bus instances

use std::fmt::Display;
use std::{collections::HashMap, fmt::Display};

use serde::{
Deserialize, Serialize,
Expand All @@ -11,7 +11,7 @@ use zvariant::{
SerializeDict, Signature, Structure, StructureBuilder, Type, Value, signature::Fields,
};

use crate::model::{BackgroundEvent, Device, Operation, RequestingApplication};
use crate::model::{BackgroundEvent, Operation, RequestingApplication};

const TAG_VALUE_SIGNATURE: &Signature = &Signature::Structure(Fields::Static {
fields: &[&Signature::U8, &Signature::Variant],
Expand Down Expand Up @@ -113,6 +113,14 @@ pub struct CreateCredentialResponse {
public_key: Option<CreatePublicKeyCredentialResponse>,
}

impl NoneValue for CreateCredentialResponse {
type NoneType = HashMap<String, OwnedValue>;

fn null_value() -> Self::NoneType {
HashMap::new()
}
}

#[derive(Clone, Debug, DeserializeDict, Type)]
#[zvariant(signature = "dict")]
pub struct CreatePublicKeyCredentialRequest {
Expand Down Expand Up @@ -197,8 +205,6 @@ impl TryFrom<&Value<'_>> for crate::model::Error {
pub struct GetCredentialRequest {
pub origin: Option<String>,
pub is_same_origin: Option<bool>,
#[zvariant(rename = "type")]
pub r#type: String,
#[zvariant(rename = "publicKey")]
pub public_key: Option<GetPublicKeyCredentialRequest>,
}
Expand Down
Loading
Loading