\ No newline at end of file
+404: This page could not be found
404
This page could not be found.
\ No newline at end of file
diff --git a/_next/static/chunks/nextra-data-en-US.json b/_next/static/chunks/nextra-data-en-US.json
index c6ea848d..56a6f7bd 100644
--- a/_next/static/chunks/nextra-data-en-US.json
+++ b/_next/static/chunks/nextra-data-en-US.json
@@ -1 +1 @@
-{"/business/audit-logs":{"title":"Audit logs","data":{"":"Needs team credentials to use this command.","fetching-the-logs#Fetching the logs":"You can query the audit logs using the logs command. For example:\ndcli t logs\nYou can also save the logs to a file:\ndcli t logs --start 0 --end now > logs.json\nThe logs are output in JSON format, each line is a new log entry.\n{\"uuid\": \"e2d9ce5b-[..redacted..]-b6de479b3483\", \"team_id\": 1315574321, \"category\": \"authentication\", \"log_type\": \"user_device_added\", \"date_time\": 1688629046919, \"properties\": {\"device_name\": \"Dashlane CLI\", \"author_login\": \"admin@something.io\", \"device_platform\": \"server_standalone\"}, \"author_user_id\": 28080685, \"schema_version\": \"1.0.0\"}\n{\"uuid\": \"d2f5db34-[..redacted..]-1dfcc3bdf911\", \"team_id\": 1315574321, \"category\": \"authentication\", \"log_type\": \"user_device_added\", \"date_time\": 1688628172021, \"properties\": {\"device_name\": \"Chrome - Mac OS\", \"author_login\": \"admin@something.io\", \"device_platform\": \"server_standalone\"}, \"author_user_id\": 28080685, \"schema_version\": \"1.0.0\"}\n{\"uuid\": \"4ca3bb56-[..redacted..]-66cbb387cb54\", \"team_id\": 1315574321, \"category\": \"authentication\", \"log_type\": \"user_device_added\", \"date_time\": 1683303544898, \"properties\": {\"device_name\": \"Firefox - Ubuntu\", \"author_login\": \"user@something.io\", \"device_platform\": \"server_standalone\"}, \"author_user_id\": 28086620, \"schema_version\": \"1.0.0\"}\n{\"uuid\": \"68e70f62-[..redacted..]-1bb9830f9f18\", \"team_id\": 1315574321, \"category\": \"team_settings_sso\", \"log_type\": \"sso_service_provider_url_set\", \"date_time\": 1671629557924, \"properties\": {\"author_login\": \"admin@something.io\", \"service_provider_url\": \"https://sso.nitro.dashlane.com\"}, \"author_user_id\": 28080685, \"schema_version\": \"1.0.0\"}","filtering-the-logs#Filtering the logs":"With the following options you can filter the logs by start and end date, log type and category.\n--start start timestamp in ms (default: \"0\")\n--end end timestamp in ms (default: \"now\")\n--type log type\n--category log category","filtering-by-date#Filtering by date":"We use epoch timestamps in milliseconds, so you can use the date command to get the timestamp of a specific date:\n# On Linux and Windows\ndate -d \"2021-09-01\" +%s000\n\n# On macOS\ndate -j -f \"%Y-%m-%d\" \"2021-09-01\" +%s000\nThe final command would look like this using date:\n# On Linux and Windows\ndcli t logs --start $(date -d \"2021-09-01\" +%s000) --end $(date -d \"2021-09-02\" +%s000)\n\n# On macOS\ndcli t logs --start $(date -j -f \"%Y-%m-%d\" \"2021-09-01\" +%s000) --end $(date -j -f \"%Y-%m-%d\" \"2021-09-02\" +%s000)\nIn the output logs timestamps are in milliseconds, so you can use the date command to convert them to a human readable format:\n# On Linux and Windows\ndate -d @1688629046919\n\n# On macOS\ndate -r 1688629046919","options#Options":"","export-as-csv#Export as CSV":"You can export the logs as CSV using the --csv option.\ndcli t logs --csv --start 0 --end now > logs.csv\nThis allows you to open the logs in a spreadsheet editor like Excel or Google Sheets.\nNote that the properties field is kept as a JSON string in the CSV file because its content varies depending on the log type.","human-readable-dates#Human Readable dates":"You can use the --human-readable option to output the logs with human readable dates.\ndcli t logs --human-readable\nThe date will be displayed in the ISO 8601 format.Note that a new key named date_time_iso will be added to the logs.","logs-types#Logs types":"","default-types#Default types":"Type\tEvent message\tmaster_password_reset_accepted\tAccepted an Account Recovery request from %(email)s\tmaster_password_reset_refused\tDenied an Account Recovery request from %(email)s\tuser_device_added\tAdded the device %(name)s\tuser_device_removed\tRemoved the device %(name)s\trequested_account_recovery\tRequested Account Recovery\tcompleted_account_recovery\tRecovered their account through Account Recovery\tdwm_email_added\tAdded %(email)s to Dark Web Monitoring\tdwm_email_removed\tRemoved %(email)s from Dark Web Monitoring\tuser_group_created\tCreated a group named %(groupName)s\tuser_group_renamed\tRenamed the %(oldGroupName)s group to %(newGroupName)s\tuser_group_deleted\tDeleted the %(groupName)s group\tuser_joined_user_group\tJoined the %(groupName)s group\tuser_invited_to_user_group\tInvited %(email)s to the %(groupName)s group\tuser_declined_invite_to_user_group\tDeclined to join the %(groupName)s group\tuser_removed_from_user_group\tRemoved %(email)s from the %(groupName)s group\tteam_name_changed\tChanged your company name to “%(name)s”\tnew_billing_period_created\tExtended your account until %(date)s\tseats_added\tAdded %(count)s seats to your account\tdomain_requested\tAdded %(domain)s as an unverified domain\tdomain_validated\tVerified the domain %(domain)s\tcollect_sensitive_data_audit_logs_enabled\t(user) turned on unencrypted vault logs\tcollect_sensitive_data_audit_logs_disabled\t(user) turned off unencrypted vault logs\tsso_idp_metadata_set\tUpdated SSO identity provider metadata\tsso_service_provider_url_set\tConfigured SSO service provider URL\tsso_enabled\tEnabled SSO\tsso_disabled\tDisabled SSO\tcontact_email_changed\tChanged contact email to %(email)s\tmaster_password_mobile_reset_enabled\tTurned on biometric recovery for %(deviceName)s\ttwo_factor_authentication_login_method_added\tActivated a 2FA method\ttwo_factor_authentication_login_method_removed\tRemoved a 2FA method\tuser_invited\tInvited %(email)s to your account\tuser_removed\tRevoked %(email)s from your account\tteam_captain_added\tChanged %(email)s to admin rights\tteam_captain_removed\tChanged %(email)s to member rights\tgroup_manager_added\tChanged %(email)s to group manager rights\tgroup_manager_removed\tChanged %(email)s to member rights\tuser_reinvited\tResent an invite to %(email)s\tbilling_admin_added\tMade %(name)s the billing contact\tbilling_admin_removed\tRevoked %(name)s as the billing contact","sensitive-types#Sensitive types":"You can turn on logging sensitive actions in the Policies section of Settings in the Admin Console. Read more about it in our dedicated Help Center article.\nType\tEvent message\tcollect_sensitive_data_audit_logs_enabled\t(user) turned on additional activity logs (unencrypted)\tcollect_sensitive_data_audit_logs_disabled\t(user) turned off additional activity logs (unencrypted)\tuser_shared_credential_with_group\t(user) shared %(rights [limited/full]) rights to the %(domain)s\tuser_shared_credential_with_email\t(user) shared %(rights [limited/full]) rights to the %(domain)s\tuser_shared_credential_with_external\t(user) shared %(rights [limited/full]) rights to the %(domain)s\tuser_accepted_sharing_invite_credential\t(user) accepted a sharing invitation for the %(domain)s\tuser_rejected_sharing_invite_credential\t(user) rejected a sharing invitation for the %(domain)s\tuser_revoked_shared_credential_group\t(user) revoked access to the %(domain)s login\tuser_revoked_shared_credential_external\t(user) revoked access to the %(domain)s login\tuser_revoked_shared_credential_email\t(user) revoked access to the %(domain)s login\tuser_created_credential\t(user) created a login for %(domain)s\tuser_modified_credential\t(user) modified the login for %(domain)s\tuser_deleted_credential\t(user) deleted the login for %(domain)s","logs-categories#Logs categories":"Category\tauthentication\tdark_web_monitoring\tgroups\tsharing\tteam_account\tteam_settings\tteam_settings_sso\tusers\tuser_settings\tvault_passwords","use-cases#Use cases":"","sending-audit-logs-to-a-siem-or-log-management-solution#Sending audit logs to a SIEM or log management solution":"If you want to send the logs to a SIEM for instance, you can pull the logs periodically and only get the new logs by using the --start option.Here is an example of a cron job that pulls the latest logs of the day and append them to a file:\n#!/bin/bash\n\n# Create the cron job\n# crontab -e\n# 0 0 * * * /path/to/script.sh\n\n# Get the latest pull date\nif [ -f \"last_pull_date\" ]; then\nlast_pull_date=$(cat last_pull_date)\nelse\nlast_pull_date=0\nfi\n\n# Save the latest pull date\ndate +%s000 > last_pull_date\n\n# Pull the logs\ndcli t logs --start $last_pull_date >> logs.json\nMake sure to replace /path/to/script.sh with the actual path to the script.\nThe other paths in the script are only examples and may not reflect the permissions of your system, you can change them to your needs.Configure your SIEM agent to watch the logs.json file changes."}},"/business":{"title":"Get started with Business Commands","data":{"":"Commands related to business use a different authentication than your personal vault.Commands are calling a server API to perform actions and retrieve data. The first step is to login with the personal account (follow this guide) of a team admin and to generate a set of credentials.","generate-credentials#Generate credentials":"Needs to be authenticated as an admin to use this command.\n\ndcli t credentials generate\nYou will be prompted with a list of variables to export in your environment. Simply copy/paste them in your terminal.\nexport DASHLANE_TEAM_UUID=08a48d4f-[..redacted..]-fba9193d968c\nexport DASHLANE_TEAM_ACCESS_KEY=f56[..redacted..]56ce\nexport DASHLANE_TEAM_SECRET_KEY=839c9[..redacted..]3ada5\nOn Windows, you can use the set command instead of export.\nset DASHLANE_TEAM_UUID=08a48d4f-[..redacted..]-fba9193d968c\nset DASHLANE_TEAM_ACCESS_KEY=f56[..redacted..]56ce\nset DASHLANE_TEAM_SECRET_KEY=839c9[..redacted..]3ada5\nMake sure you save them in a safe place (use a secure note for instance 😉).","list-credentials#List credentials":"Needs to be authenticated as an admin to use this command.\n\ndcli t credentials list","revoke-credentials#Revoke credentials":"Needs to be authenticated as an admin to use this command.\n\ndcli t credentials revoke "}},"/business/members":{"title":"Listing members","data":{"":"Needs team credentials to use this command.","fetching-the-list-of-members#Fetching the list of members":"Listing team members allows you to access many information about them, such as their email, their role, their 2FA status, their security score, etc.\ndcli t members","filtering-the-list-of-members#Filtering the list of members":"You can pipe the output to jq to filter the results:\ndcli t members | jq '.members[] | select(.isTeamCaptain == true)'","options#Options":"","exporting-the-list-as-a-csv#Exporting the list as a CSV":"You can use the --csv flag to export the list as a CSV file:\ndcli t members --csv > members.csv\nThis allows you to open the file in a spreadsheet editor such as Excel or Google Sheets.","human-readable-dates#Human Readable dates":"You can use the --human-readable option to output the logs with human readable dates.\ndcli t members --human-readable\nThe dates will be displayed in the ISO 8601 format.Note that keys ending with Unix will be converted to human readable dates and renamed to remove the Unix suffix.","members-interface#Members interface":"Property\tType\tDescription\tmembers\tArray of object\tArray of team members\tmembers.userId\tnumber | undefined\tThe user identifier of the user\tmembers.login\tstring\tUser login (usually email)\tmembers.status\tstring\tMember status\tmembers.joinedDateUnix\tnumber | null\tThe join date of member in Unix time\tmembers.lastUpdateDateUnix\tnumber | null\tLast updated date of member in Unix time\tmembers.isBillingAdmin\tboolean\tTrue if user is a billing admin, false otherwise\tmembers.isTeamCaptain\tboolean\tTrue if user is a team captain, false otherwise\tmembers.isGroupManager\tboolean\tTrue if user is a group manager, false otherwise\tmembers.email\tstring | undefined\tThe user's account email\tmembers.isAccountCreated\tboolean | undefined\tIf user account is created\tmembers.invitedDateUnix\tnumber\tDate user was invited\tmembers.token\tobject\tThe user's invite token\tmembers.token.userId\tnumber | undefined\tUser identifier associated with the token\tmembers.token.teamId\tnumber | undefined\tTeam identifier associated with the token\tmembers.token.token\tstring | undefined\tValue of the invite token\tmembers.token.isFresh\tboolean | undefined\tTrue if token is not used, false otherwise\tmembers.token.inviteUserId\tnumber | undefined\tThe user identifier of the inviter\tmembers.revokedDateUnix\tnumber | null\tWhen user's account was revoked in Unix time\tmembers.language\tstring | undefined\tUser's preferred language\tmembers.nbrPasswords\tnumber | null\tNumber of passwords stored by user\tmembers.reused\tnumber | null\tNumber of reused passwords\tmembers.reusedDistinct\tnumber | null\tNumber of distinct reused passwords\tmembers.weakPasswords\tnumber | null\tNumber of weak passwords\tmembers.compromisedPasswords\tnumber | null\tNumber of compromised passwords\tmembers.averagePasswordStrength\tnumber | null\tAverage password strength score\tmembers.passwordStrength0_19Count\tnumber | null\tNumber of passwords between 0 to 19 characters\tmembers.passwordStrength20_39Count\tnumber | null\tNumber of passwords between 20 to 39 characters\tmembers.passwordStrength40_59Count\tnumber | null\tNumber of passwords between 40 to 59 characters\tmembers.passwordStrength60_79Count\tnumber | null\tNumber of passwords between 60 to 79 characters\tmembers.passwordStrength80_100Count\tnumber | null\tNumber of passwords between 80 to 100 characters\tmembers.safePasswords\tnumber | null\tNumber of passwords considered safe\tmembers.name\tstring | null\tUser's name\tmembers.securityIndex\tnumber | null\tSecurity index\tmembers.twoFAInformation\tobject\t2FA information for the user\tmembers.twoFAInformation.type\t'sso' | 'email_token' | 'totp_device_registration' | 'totp_login' | undefined\t2FA type\tmembers.twoFAInformation.phone\tstring | null\tPhone number for 2FA\tmembers.twoFAInformation.lastUpdateDateUnix\tnumber | null\tLast updated date of 2FA in Unix time\tmembers.hasPublicKey\tboolean\tTrue if user has a public key\tbillingAdmins\tArray of string\tArray of emails of billing admins\tpage\tnumber\tCurrent page of results\tpages\tnumber\tTotal pages of results"}},"/business/reports":{"title":"Reports","data":{"":"Needs team credentials to use this command.\nYou can get reports on your team about the number of seats provisioned, used and pending. You can also get reports on the aggregated password health history of your team.","fetch-reports#Fetch reports":"The following commands take in input the number of days to look back for the password health history. The default is 0 day.\ndcli t report 30","generate-graphics-from-reports#Generate graphics from reports":"One way to consume password health history reports is to generate graphics from them.\n\nThe following Python script example will generate a graphic from the report.\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n\ndef format_month(month: str):\nmatch month:\ncase \"01\":\nreturn \"Jan\"\ncase \"02\":\nreturn \"Feb\"\ncase \"03\":\nreturn \"Mar\"\ncase \"04\":\nreturn \"Apr\"\ncase \"05\":\nreturn \"May\"\ncase \"06\":\nreturn \"Jun\"\ncase \"07\":\nreturn \"Jui\"\ncase \"08\":\nreturn \"Aug\"\ncase \"09\":\nreturn \"Sep\"\ncase \"10\":\nreturn \"Oct\"\ncase \"11\":\nreturn \"Nov\"\ncase \"12\":\nreturn \"Dec\"\n\n\ndef format_x_label(label: str):\nyear, month = label.split(\"-\")\nreturn f\"{format_month(month)} {year}\"\n\n\ndef generate_graph(file_path: str, data):\ndates = []\nvalues = []\nfor value in data:\ndates.append(np.datetime64(value[\"date\"]))\nvalues.append(value[\"securityIndex\"])\n\n# create two subplots with the shared x and y axes\nfig, (ax) = plt.subplots(figsize=(10, 5))\n\nax.plot(dates, values, lw=2, color=\"#4e828f\")\nax.grid(True)\n\nax.set_ylabel(\"Security score\")\nlabels = ax.get_xticklabels()\nfor label in labels:\nlabel._text = format_x_label(label._text)\nax.set_xticklabels(labels)\n\nax.set_ylim(min(values) - 10, 100)\n\nfig.suptitle(\"Evolution of the team security score\")\nfig.autofmt_xdate()\n\nplt.savefig(file_path)\nplt.close()\nreturn file_path"}},"/guides":{"title":"Our guides in video","data":{"":"We made a series of videos to help you understand how to use the CLI."}},"/":{"title":"Documentation","data":{"":"Dashlane CLI is a command line interface for Dashlane. It allows you to interact with your Dashlane account, and to manage your passwords and personal data.Dashlane CLI also allows you to access team admin related features such as accessing your team's member list, Dark Web Insights reports and activity logs.This documentation is separated in two parts:"}},"/install":{"title":"Install","data":{"":"The Dashlane CLI can be installed in multiple ways. You can either install it using Homebrew on macOS and Linux, manually with Yarn or download the packaged executables for Windows, macOS and Linux on x64 architectures.\n\nYou can install the Dashlane CLI using Homebrew, a package manager for macOS and Linux.To install Homebrew, run the following command in your terminal:\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\nThen you need to run the following command:\nbrew install dashlane/tap/dashlane-cli\nThe CLI is now installed on your machine, it will be updated automatically when a new version is released.\n\nThis method is available on every environment that supports Node.js and Yarn.First you need to download or git clone this repository and run the following commands in the root directory of the repository.Install the dependencies:\nyarn\nIn order to build:\nyarn run build\nIn order to link:\nyarn link\nMake sure to pull the latest changes and rebuild the project to get the latest version of the CLI.\n\nHead to the releases page and download the latest version of the CLI for your platform (Windows, macOS or Linux).You may need to mark the binary as executable (on macOS and Linux):\nchmod +x dcli-macos-x64\nYou can now try to run the CLI from the current directory in a terminal (Shell, PowerShell, etc.):\n./dcli-macos-x64\nMove the executable binary to the bin folder of your choice, for instance:\n# On macOS:\nmv dcli-macos-x64 /usr/local/bin/dcli\n\n# On Linux:\nmv dcli-linux-x64 /usr/local/bin/dcli\n\n# On Windows:\nmove dcli-win-x64.exe C:\\Windows\\System32\\dcli.exe\nOn macOS, you may also need to allow the binary to run in your security settings.\nTo do so, go to System Preferences > Security & Privacy > General and click on \"Allow Anyway\" next to the message \"dcli-macos was blocked from use because it is not from an identified developer\".You will need to get the latest version of the CLI manually by downloading the latest release and replacing the binary in your bin folder.","whats-next#What's next?":"Authenticate to your personal account\nGetting Started with Business Commands"}},"/logout":{"title":"Logout","data":{"":"If you want to start fresh with the CLI or use another account, you can logout and reset the local data by running the following command:\ndcli logout\n\nThis does not perform an account reset, it only resets the local data on the device.\nA confirmation will be asked, then the local database containing your encrypted data will be wiped and any entry related to the CLI will be removed from the OS keychain."}},"/personal/authentication":{"title":"Authentication","data":{"":"To start with launch a first manual sync:\ndcli sync\nAuthenticating to your personal vault requires your email.\nYou will be then asked to validate a second factor to register the CLI to your account.","supported-primary-authentication-methods#Supported primary authentication methods":"Master Password\nSSO (self-hosted only)\n\n\nConfidential SSO (using Nitro Enclaves) and Password-Less authentication are not supported yet.","requirements-for-sso-authentication#Requirements for SSO authentication":"You must have:\nthe latest Chrome browser installed on your machine\na visual interface to be able to authenticate in the browser\na machine that has a keychain (macOS, Windows, Linux with libsecret installed for instance)\n\nThe CLI will open a new incognito tab to authenticate you to your SSO provider.","supported-2fa-methods#Supported 2FA methods":"Email code validation (default)\nTOTP code validation (via an authenticator app)\nDashlane Authenticator push notification\nDUO push notification\n\nBy completing the device registration process, you'll be now asked to enter your Master Password.","options#Options":"By default your Master Password will be saved locally in the OS keychain so you don't have to enter it every time.\nYou can disable this behavior with the following command:\ndcli configure save-master-password false"}},"/personal/backup":{"title":"Backup your local Vault","data":{"":"By using the backup command, you can backup your local vault to a given directory and filename.\nThe command will perform a sync prior to the backup to ensure that the latest data is pulled from the Dashlane servers.The backup is a sqlite3 database file containing all your secrets encrypted by your master password.\n# By default the backup file is stored in the current directory and named dashlane-backup-.db\ndcli backup\n\n# You can specify the directory and filename\ndcli backup --filename --directory \nThe database is composed of 3 tables:\ndevice: contains the current device information and configuration (including your device secrets)\ntransactions: contains all the transactions that composed your vault (the type determines if the transaction is a password, a note, a credit card, etc.)\nsyncUpdates: contains the sync updates when the data was pulled from the Dashlane servers"}},"/personal":{"title":"Get started with Personal Commands","data":{"":"Accessing your personal vault allows you to view your passwords, secure notes and OTP codes."}},"/personal/devices":{"title":"Managing your devices","data":{"":"","list-your-devices#List your devices":"dcli devices list\nYou'll get a list of all your devices, with their ID, name, and platform.\nf6110572 Chrome - Linux server_standalone other\ne96c8942 Firefox - Ubuntu server_standalone other\n9d7fc86f Chrome - Mac OS server_standalone other\n61e815b5 Dashlane CLI server_standalone current\nYou can also request the result in JSON format:\ndcli devices list --json","remove-devices-from-your-account#Remove devices from your account":"Devices that are removed from your account will need to re-authenticate to Dashlane again.\nThis is useful if you want to remove a device that you no longer use, or you don't have access to anymore.","remove-specific-devices#Remove specific devices":"dcli devices remove ","remove-all-devices-except-the-current-one#Remove all devices except the current one":"dcli devices remove --others","remove-all-devices-including-current-cli-device#Remove all devices including current CLI device":"dcli devices remove --all\n\nIf you remove the current CLI device, you will need to do a dcli logout in order to re-authenticate.","register-a-new-non-interactive-device#Register a new non-interactive device":"In case you want to access your vault in non-interactive environment like CIs or servers, you can register a new device with the register command.\ndcli devices register \"my_server\"\nNote that you will be prompted to validate the registration with a second factor authentication.This will create a new device named my_server and will print the device credentials.\nSave them in a safe place (like in a secure note), as you won't be able to retrieve them later.\nRun the suggested commands on your target device (your server or CI) to set the device credentials as environment variables.\nexport DASHLANE_DEVICE_ACCESS_KEY=bdd5[..redacted..]6eb\nexport DASHLANE_DEVICE_SECRET_KEY=99f7d9bd547c0[..redacted..]c93fa2118cdf7e3d0\nexport DASHLANE_LOGIN=email@domain.com\nexport DASHLANE_MASTER_PASSWORD=\nPlease, replace with your actual master password.\nOTP at each login and SSO are not supported for non-interactive devices. We recommend creating a dedicated Dashlane\naccount for your non-interactive devices.\nOnce you've set the environment variables, you can use the CLI to retrieve passwords, otp and notes and no interactive prompts will be shown."}},"/personal/secrets/exec":{"title":"Load secrets into environment variables","data":{"":"The Dashlane CLI allows you to load secrets into environment variables. This is useful for example when you want to use secrets in your applications in development.By using secret references in your environment variables, you can load secrets from your Dashlane account into your environment variables and avoid having to store them in plain text in your code.","get-your-secret-reference#Get your secret reference":"Follow the guide in Read secrets references to learn how to get your secret reference.It should look like this: dl:///?","export-environment-variables#Export environment variables":"You can now export your secret reference into an environment variable :\nexport GITLAB_TOKEN='dl://mygitlabtoken/password'","use-your-secret-in-your-application#Use your secret in your application":"In your code you can for instance read the variable from the env:\nconst token = process.env.GITLAB_TOKEN;\n\nconsole.log(token);\nFinally, you can use the dcli exec command to run your application with the environment variables loaded from your Dashlane account.\ndcli exec -- node app.js\nThe stdin and stdout of your application will be piped to the terminal.\nEvery environment variable that starts with dl:// will be replaced by the secret value from your Dashlane account."}},"/personal/secrets/inject":{"title":"Load secrets into templated files","data":{"":"Using Dashlane CLI you can inject secrets into templated files.\nThis is useful for example to inject secrets into configuration files and avoid storing secrets in your repository.","get-your-secret-reference#Get your secret reference":"Follow the guide in Read secrets references to learn how to get your secret reference.It should look like this: dl:///?","use-secret-references-in-your-config-file#Use secret references in your config file":"In your template config file, use the secret reference as a placeholder for the value you want to inject.The secret reference must be enclosed in double curly braces {{ }}.For instance, let's create a template config file for a fictive API:\napi:\nurl: https://api.example.com\nport: 443\naccess_token: '{{ dl:/// }}'","inject-secrets-into-your-config-file#Inject secrets into your config file":"Use the dcli inject command to inject secrets into your config file.\ndcli inject --in config.yaml.template --out config.yaml\nIn output file, the secret reference is replaced by the plaintext secret value.\n\n\nMake sure to delete the resolved config file if you no longer need it."}},"/personal/secrets/read":{"title":"Read secrets references","data":{"":"A secret reference is an URI starting by dl:// that points to a secret stored in your vault.You can use a secret reference to securely load a secret from your vault into environment variables, scripts or configuration files.","structure-of-secret-references#Structure of secret references":"The URI is composed of 4 parts:\nThe scheme dl://\nThe identifier of the secret (or its title)\n(optionally) the field of the secret to load\n(optionally) a transformer to apply to the secret\n\n\ndl://[/][?]","secret-identifier#Secret identifier":"The secret identifier is the unique identifier of the secret in your vault (it can be either a password or a secure note).\nYou can get this identifier by displaying the full json of a secret with the command dcli password -o json.\n# You will find them in the \"id\" field of the json\n{\n\"creationDatetime\": \"1691073205\",\n\"id\": \"{QD145B53-B987-4CFE-9408-F25803DC47A4}\",\n...\n}\nNote: Make sure to remove the {} around the identifier before using it in the path. In this example it is QD145B53-B987-4CFE-9408-F25803DC47A4.Alternatively, you can use the title of the secret instead of its identifier. In this case, the secret will be loaded by searching for its title in your vault.\nIf multiple secrets have the same title, the first one will be loaded.","field#Field":"The field is the name of the field of the secret to load. If not specified, the whole secret will be loaded in a JSON format.","transformer#Transformer":"The transformer is a function that will be applied to the secret field before loading it. It can be used to format the secret in a specific way.Available transformers:\n?otp to generate a one-time password from a secret key\n?otp+expiry to generate a one-time password from a secret key and display its expiry date (in seconds)\n?json= to extract a value from a JSON object\n(please refer to JSONPath documentation for more information)","read-a-secret-reference#Read a secret reference":"You can simply use the dcli read command to read a secret reference.\n# Read the whole secret\ndcli read dl://\n\n# Read a specific field of the secret\ndcli read dl:///\n\n# Read a specific field of the secret and apply a transformer\ndcli read dl:///?\nNote: Accessing a secret with the secret identifier is faster than using the title of the secret as it does not require to decrypt the whole vault."}},"/personal/vault":{"title":"Accessing your Vault","data":{"":"For now accessing your vault is read only.","get-a-password#Get a password":"dcli p mywebsite\n# will return any entry for which either the url or the title matches mywebsite\n\ndcli p id=xxxxxx\n# will return any entry for which the id matches xxxxxx\n\ndcli p url=someurl title=mytitle\n# will return any entry for which the url matches someurl, or the title matches mytitle\n\ndcli p url,title=mywebsite\n# will return any entry for which either the url or the title matches mywebsite\nNote: You can select a different output for passwords among clipboard, password, json. The JSON option outputs all the matching credentials.","generate-an-otp-code#Generate an OTP code":"You can get an OTP code from your vault as well as the remaining time before it expires.\nJust use the otp or o command and filter similarly to the password command:\ndcli otp [filters]","get-a-secure-note#Get a secure note":"In order to get a secure note, just use the note or n command and define some filters (similarly to the password command).\nYou can also select a different output for notes among text, json. The JSON option outputs all the matching notes.\ndcli note [filters]\n\n# Example with a JSON output\ndcli note tilte=sample.md -o json","options#Options":"By default an automatic synchronization is performed once per hour.\nYou can change this behavior with the following command:\ndcli configure disable-auto-sync true","use-cases#Use cases":"","use-ssh-keys-from-your-vault#Use SSH Keys from your vault":"This use case shows you how to use Dashlane to store your SSH keys and use them to connect to your servers.\nThis could be useful if you want to share SSH keys with your team.Let's say you have generated a new SSH key pair and you want to store it in Dashlane.\n# this is an example, use the parameters you want\nssh-keygen -t rsa -b 4096 -C \"Dashlane SSH demo key\"\nCopy the private key to your clipboard and store it in a new secure note (named SSH_DEMO_KEY in our example) in Dashlane via the extension.\nIt is important to include the headers of the key (-----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY-----) in the secure note.Now, make sure your CLI is synchronized:\ndcli sync\nOnce done, you can retrieve the private key from your vault and inject it in your SSH agent:\ndcli n SSH_DEMO_KEY | ssh-add -"}},"/troubleshooting":{"title":"Troubleshooting","data":{"":"Here are a few common issues and how to fix them.","mismatching-signatures#Mismatching signatures":"If you are using the CLI in multiple environments, and particularly in an IDE like WebStorm, they may use different\nOS keychain environments so the local keys may not match: the reason why signatures are invalid.To detect this problem you can, on Linux, install secret-tool: sudo apt install libsecret-tools, execute\nsecret-tool search service dashlane-cli on every environment and check if the secrets match.If they don't, you can fix the error by manually editing what is stored in the OS keychain using this command:\nsecret-tool store --label \"dashlane-cli@\" service dashlane-cli account in the\nfailing environment with the secret from the healthy environment.","requesterror-unable-to-verify-the-first-certificate#RequestError: unable to verify the first certificate":"In NodeJS the list of certificate authorities is hardcoded, read more here: nodejs/node#4175.\nYou can use an environment variable to add custom certs (see documentation):\n\n\nexport NODE_EXTRA_CA_CERTS=\"/path/to/cert.pem\"\n\n\n\n$Env:NODE_EXTRA_CA_CERTS=\"C:\\certs\\root.crt\"\n\n\n\nset NODE_EXTRA_CA_CERTS=\"C:\\certs\\root.crt\"\n\n\nSee the issue #46."}}}
\ No newline at end of file
+{"/business/audit-logs":{"title":"Audit logs","data":{"":"Needs team credentials to use this command.","fetching-the-logs#Fetching the logs":"You can query the audit logs using the logs command. For example:\ndcli t logs\nYou can also save the logs to a file:\ndcli t logs --start 0 --end now > logs.json\nThe logs are output in JSON format, each line is a new log entry.\n{\"uuid\": \"e2d9ce5b-[..redacted..]-b6de479b3483\", \"team_id\": 1315574321, \"category\": \"authentication\", \"log_type\": \"user_device_added\", \"date_time\": 1688629046919, \"properties\": {\"device_name\": \"Dashlane CLI\", \"author_login\": \"admin@something.io\", \"device_platform\": \"server_standalone\"}, \"author_user_id\": 28080685, \"schema_version\": \"1.0.0\"}\n{\"uuid\": \"d2f5db34-[..redacted..]-1dfcc3bdf911\", \"team_id\": 1315574321, \"category\": \"authentication\", \"log_type\": \"user_device_added\", \"date_time\": 1688628172021, \"properties\": {\"device_name\": \"Chrome - Mac OS\", \"author_login\": \"admin@something.io\", \"device_platform\": \"server_standalone\"}, \"author_user_id\": 28080685, \"schema_version\": \"1.0.0\"}\n{\"uuid\": \"4ca3bb56-[..redacted..]-66cbb387cb54\", \"team_id\": 1315574321, \"category\": \"authentication\", \"log_type\": \"user_device_added\", \"date_time\": 1683303544898, \"properties\": {\"device_name\": \"Firefox - Ubuntu\", \"author_login\": \"user@something.io\", \"device_platform\": \"server_standalone\"}, \"author_user_id\": 28086620, \"schema_version\": \"1.0.0\"}\n{\"uuid\": \"68e70f62-[..redacted..]-1bb9830f9f18\", \"team_id\": 1315574321, \"category\": \"team_settings_sso\", \"log_type\": \"sso_service_provider_url_set\", \"date_time\": 1671629557924, \"properties\": {\"author_login\": \"admin@something.io\", \"service_provider_url\": \"https://sso.nitro.dashlane.com\"}, \"author_user_id\": 28080685, \"schema_version\": \"1.0.0\"}","filtering-the-logs#Filtering the logs":"With the following options you can filter the logs by start and end date, log type and category.\n--start start timestamp in ms (default: \"0\")\n--end end timestamp in ms (default: \"now\")\n--type log type\n--category log category","filtering-by-date#Filtering by date":"We use epoch timestamps in milliseconds, so you can use the date command to get the timestamp of a specific date:\n# On Linux and Windows\ndate -d \"2021-09-01\" +%s000\n\n# On macOS\ndate -j -f \"%Y-%m-%d\" \"2021-09-01\" +%s000\nThe final command would look like this using date:\n# On Linux and Windows\ndcli t logs --start $(date -d \"2021-09-01\" +%s000) --end $(date -d \"2021-09-02\" +%s000)\n\n# On macOS\ndcli t logs --start $(date -j -f \"%Y-%m-%d\" \"2021-09-01\" +%s000) --end $(date -j -f \"%Y-%m-%d\" \"2021-09-02\" +%s000)\nIn the output logs timestamps are in milliseconds, so you can use the date command to convert them to a human readable format:\n# On Linux and Windows\ndate -d @1688629046919\n\n# On macOS\ndate -r 1688629046919","options#Options":"","export-as-csv#Export as CSV":"You can export the logs as CSV using the --csv option.\ndcli t logs --csv --start 0 --end now > logs.csv\nThis allows you to open the logs in a spreadsheet editor like Excel or Google Sheets.\nNote that the properties field is kept as a JSON string in the CSV file because its content varies depending on the log type.","human-readable-dates#Human Readable dates":"You can use the --human-readable option to output the logs with human readable dates.\ndcli t logs --human-readable\nThe date will be displayed in the ISO 8601 format.Note that a new key named date_time_iso will be added to the logs.","logs-types#Logs types":"","default-types#Default types":"Type\tEvent message\tmaster_password_reset_accepted\tAccepted an Account Recovery request from %(email)s\tmaster_password_reset_refused\tDenied an Account Recovery request from %(email)s\tuser_device_added\tAdded the device %(name)s\tuser_device_removed\tRemoved the device %(name)s\trequested_account_recovery\tRequested Account Recovery\tcompleted_account_recovery\tRecovered their account through Account Recovery\tdwm_email_added\tAdded %(email)s to Dark Web Monitoring\tdwm_email_removed\tRemoved %(email)s from Dark Web Monitoring\tuser_group_created\tCreated a group named %(groupName)s\tuser_group_renamed\tRenamed the %(oldGroupName)s group to %(newGroupName)s\tuser_group_deleted\tDeleted the %(groupName)s group\tuser_joined_user_group\tJoined the %(groupName)s group\tuser_invited_to_user_group\tInvited %(email)s to the %(groupName)s group\tuser_declined_invite_to_user_group\tDeclined to join the %(groupName)s group\tuser_removed_from_user_group\tRemoved %(email)s from the %(groupName)s group\tteam_name_changed\tChanged your company name to “%(name)s”\tnew_billing_period_created\tExtended your account until %(date)s\tseats_added\tAdded %(count)s seats to your account\tdomain_requested\tAdded %(domain)s as an unverified domain\tdomain_validated\tVerified the domain %(domain)s\tcollect_sensitive_data_audit_logs_enabled\t(user) turned on unencrypted vault logs\tcollect_sensitive_data_audit_logs_disabled\t(user) turned off unencrypted vault logs\tsso_idp_metadata_set\tUpdated SSO identity provider metadata\tsso_service_provider_url_set\tConfigured SSO service provider URL\tsso_enabled\tEnabled SSO\tsso_disabled\tDisabled SSO\tcontact_email_changed\tChanged contact email to %(email)s\tmaster_password_mobile_reset_enabled\tTurned on biometric recovery for %(deviceName)s\ttwo_factor_authentication_login_method_added\tActivated a 2FA method\ttwo_factor_authentication_login_method_removed\tRemoved a 2FA method\tuser_invited\tInvited %(email)s to your account\tuser_removed\tRevoked %(email)s from your account\tteam_captain_added\tChanged %(email)s to admin rights\tteam_captain_removed\tChanged %(email)s to member rights\tgroup_manager_added\tChanged %(email)s to group manager rights\tgroup_manager_removed\tChanged %(email)s to member rights\tuser_reinvited\tResent an invite to %(email)s\tbilling_admin_added\tMade %(name)s the billing contact\tbilling_admin_removed\tRevoked %(name)s as the billing contact","sensitive-types#Sensitive types":"You can turn on logging sensitive actions in the Policies section of Settings in the Admin Console. Read more about it in our dedicated Help Center article.\nType\tEvent message\tcollect_sensitive_data_audit_logs_enabled\t(user) turned on additional activity logs (unencrypted)\tcollect_sensitive_data_audit_logs_disabled\t(user) turned off additional activity logs (unencrypted)\tuser_shared_credential_with_group\t(user) shared %(rights [limited/full]) rights to the %(domain)s\tuser_shared_credential_with_email\t(user) shared %(rights [limited/full]) rights to the %(domain)s\tuser_shared_credential_with_external\t(user) shared %(rights [limited/full]) rights to the %(domain)s\tuser_accepted_sharing_invite_credential\t(user) accepted a sharing invitation for the %(domain)s\tuser_rejected_sharing_invite_credential\t(user) rejected a sharing invitation for the %(domain)s\tuser_revoked_shared_credential_group\t(user) revoked access to the %(domain)s login\tuser_revoked_shared_credential_external\t(user) revoked access to the %(domain)s login\tuser_revoked_shared_credential_email\t(user) revoked access to the %(domain)s login\tuser_created_credential\t(user) created a login for %(domain)s\tuser_modified_credential\t(user) modified the login for %(domain)s\tuser_deleted_credential\t(user) deleted the login for %(domain)s","logs-categories#Logs categories":"Category\tauthentication\tdark_web_monitoring\tgroups\tsharing\tteam_account\tteam_settings\tteam_settings_sso\tusers\tuser_settings\tvault_passwords","use-cases#Use cases":"","sending-audit-logs-to-a-siem-or-log-management-solution#Sending audit logs to a SIEM or log management solution":"If you want to send the logs to a SIEM for instance, you can pull the logs periodically and only get the new logs by using the --start option.Here is an example of a cron job that pulls the latest logs of the day and append them to a file:\n#!/bin/bash\n\n# Create the cron job\n# crontab -e\n# 0 0 * * * /path/to/script.sh\n\n# Get the latest pull date\nif [ -f \"last_pull_date\" ]; then\nlast_pull_date=$(cat last_pull_date)\nelse\nlast_pull_date=0\nfi\n\n# Save the latest pull date\ndate +%s000 > last_pull_date\n\n# Pull the logs\ndcli t logs --start $last_pull_date >> logs.json\nMake sure to replace /path/to/script.sh with the actual path to the script.\nThe other paths in the script are only examples and may not reflect the permissions of your system, you can change them to your needs.Configure your SIEM agent to watch the logs.json file changes."}},"/business":{"title":"Get started with Business Commands","data":{"":"Commands related to business use a different authentication than your personal vault.Commands are calling a server API to perform actions and retrieve data. The first step is to login with the personal account (follow this guide) of a team admin and to generate a set of credentials.","generate-credentials#Generate credentials":"Needs to be authenticated as an admin to use this command.\n\ndcli t credentials generate\nYou will be prompted with a list of variables to export in your environment. Simply copy/paste them in your terminal.\nexport DASHLANE_TEAM_UUID=08a48d4f-[..redacted..]-fba9193d968c\nexport DASHLANE_TEAM_ACCESS_KEY=f56[..redacted..]56ce\nexport DASHLANE_TEAM_SECRET_KEY=839c9[..redacted..]3ada5\nOn Windows, you can use the set command instead of export.\nset DASHLANE_TEAM_UUID=08a48d4f-[..redacted..]-fba9193d968c\nset DASHLANE_TEAM_ACCESS_KEY=f56[..redacted..]56ce\nset DASHLANE_TEAM_SECRET_KEY=839c9[..redacted..]3ada5\nMake sure you save them in a safe place (use a secure note for instance 😉).","list-credentials#List credentials":"Needs to be authenticated as an admin to use this command.\n\ndcli t credentials list","revoke-credentials#Revoke credentials":"Needs to be authenticated as an admin to use this command.\n\ndcli t credentials revoke "}},"/business/members":{"title":"Listing members","data":{"":"Needs team credentials to use this command.","fetching-the-list-of-members#Fetching the list of members":"Listing team members allows you to access many information about them, such as their email, their role, their 2FA status, their security score, etc.\ndcli t members","filtering-the-list-of-members#Filtering the list of members":"You can pipe the output to jq to filter the results:\ndcli t members | jq '.members[] | select(.isTeamCaptain == true)'","options#Options":"","exporting-the-list-as-a-csv#Exporting the list as a CSV":"You can use the --csv flag to export the list as a CSV file:\ndcli t members --csv > members.csv\nThis allows you to open the file in a spreadsheet editor such as Excel or Google Sheets.","human-readable-dates#Human Readable dates":"You can use the --human-readable option to output the logs with human readable dates.\ndcli t members --human-readable\nThe dates will be displayed in the ISO 8601 format.Note that keys ending with Unix will be converted to human readable dates and renamed to remove the Unix suffix.","members-interface#Members interface":"Property\tType\tDescription\tmembers\tArray of object\tArray of team members\tmembers.userId\tnumber | undefined\tThe user identifier of the user\tmembers.login\tstring\tUser login (usually email)\tmembers.status\tstring\tMember status\tmembers.joinedDateUnix\tnumber | null\tThe join date of member in Unix time\tmembers.lastUpdateDateUnix\tnumber | null\tLast updated date of member in Unix time\tmembers.isBillingAdmin\tboolean\tTrue if user is a billing admin, false otherwise\tmembers.isTeamCaptain\tboolean\tTrue if user is a team captain, false otherwise\tmembers.isGroupManager\tboolean\tTrue if user is a group manager, false otherwise\tmembers.email\tstring | undefined\tThe user's account email\tmembers.isAccountCreated\tboolean | undefined\tIf user account is created\tmembers.invitedDateUnix\tnumber\tDate user was invited\tmembers.token\tobject\tThe user's invite token\tmembers.token.userId\tnumber | undefined\tUser identifier associated with the token\tmembers.token.teamId\tnumber | undefined\tTeam identifier associated with the token\tmembers.token.token\tstring | undefined\tValue of the invite token\tmembers.token.isFresh\tboolean | undefined\tTrue if token is not used, false otherwise\tmembers.token.inviteUserId\tnumber | undefined\tThe user identifier of the inviter\tmembers.revokedDateUnix\tnumber | null\tWhen user's account was revoked in Unix time\tmembers.language\tstring | undefined\tUser's preferred language\tmembers.nbrPasswords\tnumber | null\tNumber of passwords stored by user\tmembers.reused\tnumber | null\tNumber of reused passwords\tmembers.reusedDistinct\tnumber | null\tNumber of distinct reused passwords\tmembers.weakPasswords\tnumber | null\tNumber of weak passwords\tmembers.compromisedPasswords\tnumber | null\tNumber of compromised passwords\tmembers.averagePasswordStrength\tnumber | null\tAverage password strength score\tmembers.passwordStrength0_19Count\tnumber | null\tNumber of passwords between 0 to 19 characters\tmembers.passwordStrength20_39Count\tnumber | null\tNumber of passwords between 20 to 39 characters\tmembers.passwordStrength40_59Count\tnumber | null\tNumber of passwords between 40 to 59 characters\tmembers.passwordStrength60_79Count\tnumber | null\tNumber of passwords between 60 to 79 characters\tmembers.passwordStrength80_100Count\tnumber | null\tNumber of passwords between 80 to 100 characters\tmembers.safePasswords\tnumber | null\tNumber of passwords considered safe\tmembers.name\tstring | null\tUser's name\tmembers.securityIndex\tnumber | null\tSecurity index\tmembers.twoFAInformation\tobject\t2FA information for the user\tmembers.twoFAInformation.type\t'sso' | 'email_token' | 'totp_device_registration' | 'totp_login' | undefined\t2FA type\tmembers.twoFAInformation.phone\tstring | null\tPhone number for 2FA\tmembers.twoFAInformation.lastUpdateDateUnix\tnumber | null\tLast updated date of 2FA in Unix time\tmembers.hasPublicKey\tboolean\tTrue if user has a public key\tbillingAdmins\tArray of string\tArray of emails of billing admins\tpage\tnumber\tCurrent page of results\tpages\tnumber\tTotal pages of results"}},"/business/reports":{"title":"Reports","data":{"":"Needs team credentials to use this command.\nYou can get reports on your team about the number of seats provisioned, used and pending. You can also get reports on the aggregated password health history of your team.","fetch-reports#Fetch reports":"The following commands take in input the number of days to look back for the password health history. The default is 0 day.\ndcli t report 30","generate-graphics-from-reports#Generate graphics from reports":"One way to consume password health history reports is to generate graphics from them.\n\nThe following Python script example will generate a graphic from the report.\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n\ndef format_month(month: str):\nmatch month:\ncase \"01\":\nreturn \"Jan\"\ncase \"02\":\nreturn \"Feb\"\ncase \"03\":\nreturn \"Mar\"\ncase \"04\":\nreturn \"Apr\"\ncase \"05\":\nreturn \"May\"\ncase \"06\":\nreturn \"Jun\"\ncase \"07\":\nreturn \"Jui\"\ncase \"08\":\nreturn \"Aug\"\ncase \"09\":\nreturn \"Sep\"\ncase \"10\":\nreturn \"Oct\"\ncase \"11\":\nreturn \"Nov\"\ncase \"12\":\nreturn \"Dec\"\n\n\ndef format_x_label(label: str):\nyear, month = label.split(\"-\")\nreturn f\"{format_month(month)} {year}\"\n\n\ndef generate_graph(file_path: str, data):\ndates = []\nvalues = []\nfor value in data:\ndates.append(np.datetime64(value[\"date\"]))\nvalues.append(value[\"securityIndex\"])\n\n# create two subplots with the shared x and y axes\nfig, (ax) = plt.subplots(figsize=(10, 5))\n\nax.plot(dates, values, lw=2, color=\"#4e828f\")\nax.grid(True)\n\nax.set_ylabel(\"Security score\")\nlabels = ax.get_xticklabels()\nfor label in labels:\nlabel._text = format_x_label(label._text)\nax.set_xticklabels(labels)\n\nax.set_ylim(min(values) - 10, 100)\n\nfig.suptitle(\"Evolution of the team security score\")\nfig.autofmt_xdate()\n\nplt.savefig(file_path)\nplt.close()\nreturn file_path"}},"/guides":{"title":"Our guides in video","data":{"":"We made a series of videos to help you understand how to use the CLI."}},"/":{"title":"Documentation","data":{"":"Dashlane CLI is a command line interface for Dashlane. It allows you to interact with your Dashlane account, and to manage your passwords and personal data.Dashlane CLI also allows you to access team admin related features such as accessing your team's member list, Dark Web Insights reports and activity logs.This documentation is separated in two parts:"}},"/install":{"title":"Install","data":{"":"The Dashlane CLI can be installed in multiple ways. You can either install it using Homebrew on macOS and Linux, manually with Yarn or download the packaged executables for Windows, macOS and Linux on x64 architectures.\n\nYou can install the Dashlane CLI using Homebrew, a package manager for macOS and Linux.To install Homebrew, run the following command in your terminal:\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\nThen you need to run the following command:\nbrew install dashlane/tap/dashlane-cli\nThe CLI is now installed on your machine, it will be updated automatically when a new version is released.\n\nThis method is available on every environment that supports Node.js and Yarn.First you need to download or git clone this repository and run the following commands in the root directory of the repository.Install the dependencies:\nyarn\nIn order to build:\nyarn run build\nIn order to link:\nyarn link\nMake sure to pull the latest changes and rebuild the project to get the latest version of the CLI.\n\nHead to the releases page and download the latest version of the CLI for your platform (Windows, macOS or Linux).You may need to mark the binary as executable (on macOS and Linux):\nchmod +x dcli-macos-x64\nYou can now try to run the CLI from the current directory in a terminal (Shell, PowerShell, etc.):\n./dcli-macos-x64\nMove the executable binary to the bin folder of your choice, for instance:\n# On macOS:\nmv dcli-macos-x64 /usr/local/bin/dcli\n\n# On Linux:\nmv dcli-linux-x64 /usr/local/bin/dcli\n\n# On Windows:\nmove dcli-win-x64.exe C:\\Windows\\System32\\dcli.exe\nOn macOS, you may also need to allow the binary to run in your security settings.\nTo do so, go to System Preferences > Security & Privacy > General and click on \"Allow Anyway\" next to the message \"dcli-macos was blocked from use because it is not from an identified developer\".You will need to get the latest version of the CLI manually by downloading the latest release and replacing the binary in your bin folder.","whats-next#What's next?":"Authenticate to your personal account\nGetting Started with Business Commands"}},"/logout":{"title":"Logout","data":{"":"If you want to start fresh with the CLI or use another account, you can logout and reset the local data by running the following command:\ndcli logout\n\nThis does not perform an account reset, it only resets the local data on the device.\nA confirmation will be asked, then the local database containing your encrypted data will be wiped and any entry related to the CLI will be removed from the OS keychain."}},"/personal/authentication":{"title":"Authentication","data":{"":"To start with launch a first manual sync:\ndcli sync\nAuthenticating to your personal vault requires your email.\nYou will be then asked to validate a second factor to register the CLI to your account.","supported-primary-authentication-methods#Supported primary authentication methods":"Master Password\nSSO (self-hosted only)\n\n\nConfidential SSO (using Nitro Enclaves) and Password-Less authentication are not supported yet.","requirements-for-sso-authentication#Requirements for SSO authentication":"You must have:\nthe latest Chrome browser installed on your machine\na visual interface to be able to authenticate in the browser\na machine that has a keychain (macOS, Windows, Linux with libsecret installed for instance)\n\nThe CLI will open a new incognito tab to authenticate you to your SSO provider.","supported-2fa-methods#Supported 2FA methods":"Email code validation (default)\nTOTP code validation (via an authenticator app)\nDashlane Authenticator push notification\nDUO push notification\n\nBy completing the device registration process, you'll be now asked to enter your Master Password.","options#Options":"By default your Master Password will be saved locally in the OS keychain so you don't have to enter it every time.\nYou can disable this behavior with the following command:\ndcli configure save-master-password false"}},"/personal/backup":{"title":"Backup your local Vault","data":{"":"By using the backup command, you can backup your local vault to a given directory and filename.\nThe command will perform a sync prior to the backup to ensure that the latest data is pulled from the Dashlane servers.The backup is a sqlite3 database file containing all your secrets encrypted by your master password.\n# By default the backup file is stored in the current directory and named dashlane-backup-.db\ndcli backup\n\n# You can specify the directory and filename\ndcli backup --filename --directory \nThe database is composed of 3 tables:\ndevice: contains the current device information and configuration (including your device secrets)\ntransactions: contains all the transactions that composed your vault (the type determines if the transaction is a password, a note, a credit card, etc.)\nsyncUpdates: contains the sync updates when the data was pulled from the Dashlane servers"}},"/personal/devices":{"title":"Managing your devices","data":{"":"","list-your-devices#List your devices":"dcli devices list\nYou'll get a list of all your devices, with their ID, name, and platform.\nf6110572 Chrome - Linux server_standalone other\ne96c8942 Firefox - Ubuntu server_standalone other\n9d7fc86f Chrome - Mac OS server_standalone other\n61e815b5 Dashlane CLI server_standalone current\nYou can also request the result in JSON format:\ndcli devices list --json","remove-devices-from-your-account#Remove devices from your account":"Devices that are removed from your account will need to re-authenticate to Dashlane again.\nThis is useful if you want to remove a device that you no longer use, or you don't have access to anymore.","remove-specific-devices#Remove specific devices":"dcli devices remove ","remove-all-devices-except-the-current-one#Remove all devices except the current one":"dcli devices remove --others","remove-all-devices-including-current-cli-device#Remove all devices including current CLI device":"dcli devices remove --all\n\nIf you remove the current CLI device, you will need to do a dcli logout in order to re-authenticate.","register-a-new-non-interactive-device#Register a new non-interactive device":"In case you want to access your vault in non-interactive environment like CIs or servers, you can register a new device with the register command.\ndcli devices register \"my_server\"\nNote that you will be prompted to validate the registration with a second factor authentication.This will create a new device named my_server and will print the device credentials.\nSave them in a safe place (like in a secure note), as you won't be able to retrieve them later.\nRun the suggested commands on your target device (your server or CI) to set the device credentials as environment variables.\nexport DASHLANE_DEVICE_ACCESS_KEY=bdd5[..redacted..]6eb\nexport DASHLANE_DEVICE_SECRET_KEY=99f7d9bd547c0[..redacted..]c93fa2118cdf7e3d0\nexport DASHLANE_LOGIN=email@domain.com\nexport DASHLANE_MASTER_PASSWORD=\nPlease, replace with your actual master password.\nOTP at each login and SSO are not supported for non-interactive devices. We recommend creating a dedicated Dashlane\naccount for your non-interactive devices.\nOnce you've set the environment variables, you can use the CLI to retrieve passwords, otp and notes and no interactive prompts will be shown."}},"/personal":{"title":"Get started with Personal Commands","data":{"":"Accessing your personal vault allows you to view your passwords, secure notes and OTP codes."}},"/personal/secrets/exec":{"title":"Load secrets into environment variables","data":{"":"The Dashlane CLI allows you to load secrets into environment variables. This is useful for example when you want to use secrets in your applications in development.By using secret references in your environment variables, you can load secrets from your Dashlane account into your environment variables and avoid having to store them in plain text in your code.","get-your-secret-reference#Get your secret reference":"Follow the guide in Read secrets references to learn how to get your secret reference.It should look like this: dl:///?","export-environment-variables#Export environment variables":"You can now export your secret reference into an environment variable :\nexport GITLAB_TOKEN='dl://mygitlabtoken/password'","use-your-secret-in-your-application#Use your secret in your application":"In your code you can for instance read the variable from the env:\nconst token = process.env.GITLAB_TOKEN;\n\nconsole.log(token);\nFinally, you can use the dcli exec command to run your application with the environment variables loaded from your Dashlane account.\ndcli exec -- node app.js\nThe stdin and stdout of your application will be piped to the terminal.\nEvery environment variable that starts with dl:// will be replaced by the secret value from your Dashlane account."}},"/personal/secrets/inject":{"title":"Load secrets into templated files","data":{"":"Using Dashlane CLI you can inject secrets into templated files.\nThis is useful for example to inject secrets into configuration files and avoid storing secrets in your repository.","get-your-secret-reference#Get your secret reference":"Follow the guide in Read secrets references to learn how to get your secret reference.It should look like this: dl:///?","use-secret-references-in-your-config-file#Use secret references in your config file":"In your template config file, use the secret reference as a placeholder for the value you want to inject.The secret reference must be enclosed in double curly braces {{ }}.For instance, let's create a template config file for a fictive API:\napi:\nurl: https://api.example.com\nport: 443\naccess_token: '{{ dl:/// }}'","inject-secrets-into-your-config-file#Inject secrets into your config file":"Use the dcli inject command to inject secrets into your config file.\ndcli inject --in config.yaml.template --out config.yaml\nIn output file, the secret reference is replaced by the plaintext secret value.\n\n\nMake sure to delete the resolved config file if you no longer need it."}},"/personal/secrets/read":{"title":"Read secrets references","data":{"":"A secret reference is an URI starting by dl:// that points to a secret stored in your vault.You can use a secret reference to securely load a secret from your vault into environment variables, scripts or configuration files.","structure-of-secret-references#Structure of secret references":"The URI is composed of 4 parts:\nThe scheme dl://\nThe identifier of the secret (or its title)\n(optionally) the field of the secret to load\n(optionally) a transformer to apply to the secret\n\n\ndl://[/][?]","secret-identifier#Secret identifier":"The secret identifier is the unique identifier of the secret in your vault (it can be either a password or a secure note).\nYou can get this identifier by displaying the full json of a secret with the command dcli password -o json.\n# You will find them in the \"id\" field of the json\n{\n\"creationDatetime\": \"1691073205\",\n\"id\": \"{QD145B53-B987-4CFE-9408-F25803DC47A4}\",\n...\n}\nNote: Make sure to remove the {} around the identifier before using it in the path. In this example it is QD145B53-B987-4CFE-9408-F25803DC47A4.Alternatively, you can use the title of the secret instead of its identifier. In this case, the secret will be loaded by searching for its title in your vault.\nIf multiple secrets have the same title, the first one will be loaded.","field#Field":"The field is the name of the field of the secret to load. If not specified, the whole secret will be loaded in a JSON format.","transformer#Transformer":"The transformer is a function that will be applied to the secret field before loading it. It can be used to format the secret in a specific way.Available transformers:\n?otp to generate a one-time password from a secret key\n?otp+expiry to generate a one-time password from a secret key and display its expiry date (in seconds)\n?json= to extract a value from a JSON object\n(please refer to JSONPath documentation for more information)","read-a-secret-reference#Read a secret reference":"You can simply use the dcli read command to read a secret reference.\n# Read the whole secret\ndcli read dl://\n\n# Read a specific field of the secret\ndcli read dl:///\n\n# Read a specific field of the secret and apply a transformer\ndcli read dl:///?\nNote: Accessing a secret with the secret identifier is faster than using the title of the secret as it does not require to decrypt the whole vault."}},"/personal/vault":{"title":"Accessing your Vault","data":{"":"For now accessing your vault is read only.","get-a-password#Get a password":"dcli p mywebsite\n# will return any entry for which either the url or the title matches mywebsite\n\ndcli p id=xxxxxx\n# will return any entry for which the id matches xxxxxx\n\ndcli p url=someurl title=mytitle\n# will return any entry for which the url matches someurl, or the title matches mytitle\n\ndcli p url,title=mywebsite\n# will return any entry for which either the url or the title matches mywebsite\nNote: You can select a different output for passwords among clipboard, password, json. The JSON option outputs all the matching credentials.","generate-an-otp-code#Generate an OTP code":"You can get an OTP code from your vault as well as the remaining time before it expires.\nJust use the otp or o command and filter similarly to the password command:\ndcli otp [filters]","get-a-secure-note#Get a secure note":"In order to get a secure note, just use the note or n command and define some filters (similarly to the password command).\nYou can also select a different output for notes among text, json. The JSON option outputs all the matching notes.\ndcli note [filters]\n\n# Example with a JSON output\ndcli note tilte=sample.md -o json","options#Options":"By default an automatic synchronization is performed once per hour.\nYou can change this behavior with the following command:\ndcli configure disable-auto-sync true","use-cases#Use cases":"","use-ssh-keys-from-your-vault#Use SSH Keys from your vault":"This use case shows you how to use Dashlane to store your SSH keys and use them to connect to your servers.\nThis could be useful if you want to share SSH keys with your team.Let's say you have generated a new SSH key pair and you want to store it in Dashlane.\n# this is an example, use the parameters you want\nssh-keygen -t rsa -b 4096 -C \"Dashlane SSH demo key\"\nCopy the private key to your clipboard and store it in a new secure note (named SSH_DEMO_KEY in our example) in Dashlane via the extension.\nIt is important to include the headers of the key (-----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY-----) in the secure note.Now, make sure your CLI is synchronized:\ndcli sync\nOnce done, you can retrieve the private key from your vault and inject it in your SSH agent:\ndcli n SSH_DEMO_KEY | ssh-add -"}},"/troubleshooting":{"title":"Troubleshooting","data":{"":"Here are a few common issues and how to fix them.","mismatching-signatures#Mismatching signatures":"If you are using the CLI in multiple environments, and particularly in an IDE like WebStorm, they may use different\nOS keychain environments so the local keys may not match: the reason why signatures are invalid.To detect this problem you can, on Linux, install secret-tool: sudo apt install libsecret-tools, execute\nsecret-tool search service dashlane-cli on every environment and check if the secrets match.If they don't, you can fix the error by manually editing what is stored in the OS keychain using this command:\nsecret-tool store --label \"dashlane-cli@\" service dashlane-cli account in the\nfailing environment with the secret from the healthy environment.","requesterror-unable-to-verify-the-first-certificate#RequestError: unable to verify the first certificate":"In NodeJS the list of certificate authorities is hardcoded, read more here: nodejs/node#4175.\nYou can use an environment variable to add custom certs (see documentation):\n\n\nexport NODE_EXTRA_CA_CERTS=\"/path/to/cert.pem\"\n\n\n\n$Env:NODE_EXTRA_CA_CERTS=\"C:\\certs\\root.crt\"\n\n\n\nset NODE_EXTRA_CA_CERTS=\"C:\\certs\\root.crt\"\n\n\nSee the issue #46."}}}
\ No newline at end of file
diff --git a/_next/static/QB-CkHrwo3N1ogg9zdZpc/_buildManifest.js b/_next/static/qjmU6Caiga2py_P11XaGf/_buildManifest.js
similarity index 100%
rename from _next/static/QB-CkHrwo3N1ogg9zdZpc/_buildManifest.js
rename to _next/static/qjmU6Caiga2py_P11XaGf/_buildManifest.js
diff --git a/_next/static/QB-CkHrwo3N1ogg9zdZpc/_ssgManifest.js b/_next/static/qjmU6Caiga2py_P11XaGf/_ssgManifest.js
similarity index 100%
rename from _next/static/QB-CkHrwo3N1ogg9zdZpc/_ssgManifest.js
rename to _next/static/qjmU6Caiga2py_P11XaGf/_ssgManifest.js
diff --git a/business.html b/business.html
index d7968781..80d1e51f 100644
--- a/business.html
+++ b/business.html
@@ -9,7 +9,7 @@
.dark {
--nextra-primary-hue: 204deg;
}
-
Business
Get Started
Get started with Business Commands
+
Business
Get Started
Get started with Business Commands
Commands related to business use a different authentication than your personal vault.
Commands are calling a server API to perform actions and retrieve data. The first step is to login with the personal account (follow this guide) of a team admin and to generate a set of credentials.
Generate credentials
@@ -29,4 +29,4 @@
dclitcredentialslist
Revoke credentials
💡
Needs to be authenticated as an admin to use this command.