{"id":29193140,"url":"https://github.com/ironcorelabs/ironoxide-cli","last_synced_at":"2025-07-02T02:07:42.467Z","repository":{"id":37797974,"uuid":"245474850","full_name":"IronCoreLabs/ironoxide-cli","owner":"IronCoreLabs","description":"Command-line interface for IronOxide functions to create users, devices, and groups","archived":false,"fork":false,"pushed_at":"2025-06-24T21:36:11.000Z","size":470,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-24T22:34:07.124Z","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":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IronCoreLabs.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,"zenodo":null}},"created_at":"2020-03-06T17:03:07.000Z","updated_at":"2025-06-24T21:36:13.000Z","dependencies_parsed_at":"2024-01-19T20:56:24.449Z","dependency_job_id":"80ef11dd-efff-4038-916b-f7d44af7bea6","html_url":"https://github.com/IronCoreLabs/ironoxide-cli","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/IronCoreLabs/ironoxide-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCoreLabs%2Fironoxide-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCoreLabs%2Fironoxide-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCoreLabs%2Fironoxide-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCoreLabs%2Fironoxide-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IronCoreLabs","download_url":"https://codeload.github.com/IronCoreLabs/ironoxide-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCoreLabs%2Fironoxide-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263061405,"owners_count":23407606,"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","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":"2025-07-02T02:07:41.814Z","updated_at":"2025-07-02T02:07:42.395Z","avatar_url":"https://github.com/IronCoreLabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IronOxide CLI\n\nCommand-line interface for IronOxide functions to create users, devices, and groups.\n\n## Configuration\n\nTo use the IronOxide CLI, you must first obtain an Identity Assertion Key file and a configuration file\nfrom the [IronCore Labs Admin Console](https://admin.ironcorelabs.com).\n\n### Identity Assertion Key File\n\nAn Identity Assertion Key file must be downloaded from the admin console interface immediately after creating\na new Identity Assertion Key. To use IronOxide CLI's defaults, it should be named `assertionKey.pem`.\n\n### IronCore Config File\n\nAn IronCore Config file can be downloaded from the admin console on creation of the very first project. For subsequent projects, it will need to be created manually. The file is of the form:\n\n```javascript\n{\n  \"projectId\": YOUR_PROJECT_ID,\n  \"segmentId\": \"YOUR_SEGMENT_ID\",\n  \"identityAssertionKeyId\": YOUR_IDENTITY_ASSERTION_KEY_ID\n}\n```\n\nNote that key names are case sensitive.\n\nTo use IronOxide CLI's defaults, it should be named `config.json`.\n\n## Installation\n\nIronOxide CLI requires Rust to be installed in order to compile the binary for your architecture.\nFor information on installing Rust, visit https://www.rust-lang.org/tools/install.\n\nOnce Rust is installed, it can be used to download, compile, and install the IronOxide CLI binary with the command\n\n```\ncargo install --git https://github.com/IronCoreLabs/ironoxide-cli\n```\n\n## Usage\n\nIronOxide CLI is used by running `ironoxide-cli`, followed by your desired subcommands and options.\nYou can see all the available subcommands by running `ironoxide-cli -h`.\nSubcommands are currently broken into three categories: user commands, group commands, and file commands.\n\n### User Commands\n\n#### user-create\n\nThe `user-create` subcommand is used to create a user in the IronCore service, generate a device for that user,\nand output the device context to a file. It requires the desired user's ID and password. The user's device context\nwill be output to a file, which will be named \"\\\u003cUSER-ID\\\u003e.json\" by default.\n\n### Group Commands\n\n#### group-create\n\nThe `group-create` subcommand is used to create multiple groups for the given user. As it requires the user's\ndevice context in a file, it is typically run immediately after `user-create`. The group will be created with\nthe calling user as the owner and with no additional members or administrators.\n\n#### group-add-admins\n\nThe `group-add-admins` subcommand is used to add users to a group as administrators. These users will not automatically be group members.\n\n#### group-remove-admins\n\nThe `group-remove-admins` subcommand is used to remove administrators from a group. These users will remain group members\nif they were previously. The group owner cannot be removed as an administrator.\n\n#### group-add-members\n\nThe `group-add-members` subcommand is used to add users to a group as members.\n\n#### group-remove-members\n\nThe `group-remove-members` subcommand is used to remove members from a group.\n\n#### group-list\n\nThe `group-list` subcommand is used to list all groups that the user is a member or administrator of.\n\n### File Commands\n\n#### file-encrypt\n\nThe `file-encrypt` subcommand is used to encrypt a file to the provided users and groups. The calling user\nwill also be granted access to the file. By default, the encrypted file will be output with the `.iron` extension appended.\n\n#### file-decrypt\n\nThe `file-decrypt` subcommand is used to decrypt a file that the calling user has been granted access to. By default, the\ndecrypted file will be output with the `.iron` extension removed.\n\n## Examples\n\n```console\n$ ironoxide-cli user-create ironadmin --password foobar\nCreating user \"ironadmin\"\nGenerating device for user \"ironadmin\"\nOutputting device context to \"ironadmin.json\"\n\n$ ironoxide-cli group-create customers employees others --device ironadmin.json\nFound DeviceContext in \"ironadmin.json\"\nGenerating group \"employees\" for user \"ironadmin\"\nGenerating group \"customers\" for user \"ironadmin\"\nGenerating group \"others\" for user \"ironadmin\"\n\n$ ironoxide-cli user-create ironemployee --password foobar\nCreating user \"ironemployee\"\nGenerating device for user \"ironemployee\"\nOutputting device context to \"ironemployee.json\"\n\n$ ironoxide-cli group-add-members ironemployee --group employees --device ironadmin.json\nAdding members to group \"employees\"\nFound DeviceContext in \"ironadmin.json\"\nSuccesses: [\"ironemployee\"]\nFailures: []\n\n$ ironoxide-cli group-list ironemployee.json\nFound DeviceContext in \"ironemployee.json\"\nGroups found: [\"employees\"]\n\n$ ironoxide-cli file-encrypt keys.json --groups employees --device ironadmin.json\nRead in file \"keys.json\"\nFound DeviceContext in \"ironadmin.json\"\nSuccessfully encrypted file to: [\n    \"User: ironadmin\",\n    \"Group: employees\",\n]\nFailed to encrypt file to: []\nOutput encrypted file to \"keys.json.iron\"\n\n$ ironoxide-cli file-decrypt keys.json.iron --device ironadmin.json\nRead in file \"keys.json.iron\"\nFound DeviceContext in \"ironadmin.json\"\nOutput decrypted file to \"keys.json\"\n```\n\n# License\n\nIronOxide CLI is licensed under the [GNU Affero General Public License](LICENSE).\nWe also offer commercial licenses - [email](mailto:info@ironcorelabs.com) for more information.\n\nCopyright (c) 2020 IronCore Labs, Inc.\nAll rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironcorelabs%2Fironoxide-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fironcorelabs%2Fironoxide-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironcorelabs%2Fironoxide-cli/lists"}