{"id":23659996,"url":"https://github.com/m0dex/passbolt-api-rs","last_synced_at":"2025-08-30T20:06:52.589Z","repository":{"id":98034553,"uuid":"453238673","full_name":"M0dEx/passbolt-api-rs","owner":"M0dEx","description":"Rust library for interacting with Passbolt API","archived":false,"fork":false,"pushed_at":"2022-02-03T20:55:49.000Z","size":74,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-30T20:02:33.077Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/M0dEx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-28T22:46:13.000Z","updated_at":"2022-01-31T14:27:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa24e196-fd5e-4a15-bb66-c7cc9d937d7a","html_url":"https://github.com/M0dEx/passbolt-api-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/M0dEx/passbolt-api-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M0dEx%2Fpassbolt-api-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M0dEx%2Fpassbolt-api-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M0dEx%2Fpassbolt-api-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M0dEx%2Fpassbolt-api-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/M0dEx","download_url":"https://codeload.github.com/M0dEx/passbolt-api-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M0dEx%2Fpassbolt-api-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272900157,"owners_count":25012033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-29T02:59:00.815Z","updated_at":"2025-08-30T20:06:52.575Z","avatar_url":"https://github.com/M0dEx.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# passbolt-api-rs\n\nThis is a tool to interact with [Passbolt API](https://help.passbolt.com/api) using pure Rust.\n\n## Features\n* Basic functions\n  * [X] Authentication\n  * [X] PGP message decryption\n  * [X] GET and POST methods\n  * [X] PUT, DELETE methods\n* Advanced functions\n  * [ ] Structs\n    * [X] Users\n    * [ ] Groups\n    * [ ] Permissions\n    * [X] Resources\n    * [X] Secrets\n    * [ ] Folders\n    * [X] Actions\n    * [ ] Comments\n  * [ ] Methods for natural interaction with the structs\n* [ ] Configuration file\n* [ ] CLI\n\n## Usage\n```rust\nconst PRIVATE_KEY: \u0026str = \"\n-----BEGIN PGP PRIVATE KEY BLOCK-----\nVersion: OpenPGP.js v4.10.9\nComment: https://openpgpjs.org\n\nYOUR PRIVATE KEY\n-----END PGP PRIVATE KEY BLOCK-----\";\n\nconst PRIVATE_KEY_PW: \u0026str = \"PASSWORD FOR YOUR PRIVATE KEY\";\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c()\u003e {\n    let mut passbolt = Passbolt::new(\n      \"\u003cURL of your Passbolt instance\u003e\".to_string(),\n      SignedSecretKey::from_asc(PRIVATE_KEY).unwrap().0,\n      PRIVATE_KEY_PW.to_string(),\n    )\n    .await?;\n  \n    let res_id = \"\u003cresource id\u003e\";\n    let user_id = \"\u003cuser id\u003e\";\n  \n    /// \"Raw\" methods to interact in case a model does not exist/does not support wanted functionality\n    let resource_json = passbolt\n            .get(format(RESOURCE_URL, \u0026[res_id]).as_str())\n            .await?\n            .1[\"body\"]\n            .to_string();\n  \n    /// Native Rust structs representing the objects and common interaction with them\n    let resource: Resource = passbolt\n            .get_resource(res_id)\n            .await?;\n  \n    let secret: Secret = resource\n            .secret(\u0026passbolt)\n            .await?;\n  \n    let user: User = passbolt\n            .get_user(user_id)\n            .await?;\n  \n    let history: Vec\u003cAction\u003e = resource\n            .history(\u0026passbolt)\n            .await?;\n  \n    println!(\"{:#?}\", resource);\n    println!(\"{:#?}\", secret.decrypt_data(\u0026passbolt)?);\n  \n    Ok(())\n}\n```\n## [Known issues](https://github.com/M0dEx/passbolt-api-rs/issues)\n\n## Disclaimer\nThis is a community driven project and it is not associated with Passbolt SA.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm0dex%2Fpassbolt-api-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm0dex%2Fpassbolt-api-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm0dex%2Fpassbolt-api-rs/lists"}