├── .editorconfig ├── .github ├── issue_template.md └── workflows │ └── ci.yml ├── .gitignore ├── .rustfmt.toml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE.md ├── Makefile ├── README.md ├── VERSION ├── bin ├── find-executables.sh ├── install-dependencies-debian.sh ├── install-dependencies-macos.sh ├── package.sh ├── tag-release.sh └── update-homebrew-formula.sh ├── doc ├── .gitignore ├── book.toml └── src │ ├── SUMMARY.md │ ├── compare.md │ ├── index.md │ ├── installation.md │ ├── tools │ ├── about.md │ ├── extract.md │ ├── fixtures │ │ ├── extract │ │ │ └── credentials.yml │ │ ├── process │ │ │ ├── game-config.yml │ │ │ ├── multi-document.yml │ │ │ ├── multi-stage-config.yml │ │ │ ├── project.yml │ │ │ └── team.yml │ │ └── substitute │ │ │ ├── base0.hbs │ │ │ ├── base1.hbs │ │ │ ├── data-processor │ │ │ ├── data.json │ │ │ ├── kubernetes-manifest.yaml.tpl │ │ │ ├── project.yml │ │ │ ├── team.yml │ │ │ ├── template.hbs │ │ │ └── template.tpl │ ├── process.md │ └── substitute.md │ └── vault │ ├── about.md │ ├── add.md │ ├── edit.md │ ├── first-steps.md │ ├── init.md │ ├── list.md │ ├── partitions │ ├── about.md │ ├── add.md │ └── remove.md │ ├── recipients │ ├── about.md │ ├── add.md │ ├── init.md │ ├── list.md │ └── remove.md │ ├── remove.md │ └── show.md ├── etc ├── brew │ └── sheesy.rb.in └── docker │ ├── Dockerfile.alpine-docs │ ├── Dockerfile.alpine-gpg2 │ ├── Dockerfile.musl-build │ ├── Dockerfile.rust │ └── Dockerfile.travis-ubuntu ├── lib ├── tools │ ├── Cargo.toml │ ├── src │ │ ├── lib.rs │ │ ├── process │ │ │ ├── mod.rs │ │ │ ├── types.rs │ │ │ └── util.rs │ │ └── substitute │ │ │ ├── mod.rs │ │ │ ├── spec.rs │ │ │ └── util.rs │ └── tests │ │ └── spec.rs └── vault │ ├── Cargo.toml │ ├── src │ ├── base.rs │ ├── error.rs │ ├── init.rs │ ├── lib.rs │ ├── partitions.rs │ ├── recipients │ │ ├── add.rs │ │ ├── mod.rs │ │ ├── other.rs │ │ ├── remove.rs │ │ └── util.rs │ ├── resource.rs │ ├── spec.rs │ └── util.rs │ └── tests │ ├── spec.rs │ └── vault-serde.rs ├── release.md ├── signing-keys.asc ├── src ├── cli │ ├── completions.rs │ ├── extract.rs │ ├── merge.rs │ ├── mod.rs │ ├── substitute.rs │ ├── util.rs │ └── vault.rs ├── dispatch │ ├── mod.rs │ └── vault │ │ ├── base.rs │ │ ├── doit.rs │ │ └── mod.rs ├── parse │ ├── completions.rs │ ├── extract.rs │ ├── merge.rs │ ├── mod.rs │ ├── substitute.rs │ ├── util.rs │ └── vault.rs ├── sy.rs ├── sye.rs ├── syp.rs ├── sys.rs ├── syv.rs └── util.rs └── tests ├── gpg-helpers.sh ├── included-stateless-extract.sh ├── included-stateless-merge.sh ├── included-stateless-substitute.sh ├── included-stateless-vault.sh ├── journeys ├── 00-vault-init-no-gpg.sh ├── 01-vault-init.sh ├── 02-vault-edit.sh ├── 03-vault-recipients-verified.sh ├── 04-vault-recipients-unverified.sh ├── 05-vault-recipients-remove.sh ├── 06-vault-partition.sh ├── 07-vault-partition-and-recipients.sh ├── 08-vault-always-encrypt.sh ├── dockerfile-gen │ ├── 00-vault-init-no-gpg.sh │ ├── zz-getting-started.sh │ └── zz-vault-gpg1.sh ├── fixtures │ ├── a.sec.asc │ ├── b.pub.asc │ ├── b.sec.asc │ ├── c.pub.asc │ ├── c.sec.asc │ ├── extract │ │ └── sample.yml │ ├── merge │ │ ├── complex.yml │ │ ├── good-answer.yml │ │ ├── multi-docs-1.yml │ │ ├── multi-docs-2.yml │ │ ├── multi-docs-conflict.yml │ │ ├── wrong-answer.json │ │ └── wrong-answer.yml │ ├── snapshots │ │ ├── extract │ │ │ ├── complex-value-as-yaml │ │ │ ├── complex-value-json-output │ │ │ ├── fail-file-cannot-be-read │ │ │ ├── fail-invalid-output-mode │ │ │ ├── fail-multiple-missing-keys │ │ │ ├── fail-no-input │ │ │ ├── fail-not-a-single-pointer │ │ │ ├── fail-read-multiple-times-from-stdin │ │ │ ├── fail-single-missing-key │ │ │ ├── multiple-scalars │ │ │ ├── multiple-scalars-and-array-explicit-output │ │ │ ├── multiple-scalars-and-complex │ │ │ ├── single-boolean │ │ │ ├── single-boolean-as-json │ │ │ ├── single-null │ │ │ ├── single-null-as-yaml │ │ │ ├── single-scalar │ │ │ ├── single-scalar-as-json │ │ │ └── single-string │ │ ├── getting-started │ │ │ └── syv-output-on-alpine │ │ ├── merge │ │ │ ├── allow-overwrite-file-from-stdin-with-one-conflicting-file-to-stdout │ │ │ ├── allow-overwrite-multi-doc-yaml-with-conflict-from-file-to-stdout │ │ │ ├── allow-overwrite-multi-doc-yaml-with-conflict-from-stdin-to-stdout │ │ │ ├── allow-overwrite-no-stdin-with-two-conflicting-files-to-stdout │ │ │ ├── allow-overwrite-no-stdin-with-two-conflicting-files-to-stdout-overwrite-persists │ │ │ ├── allow-overwrite-yaml-conflicting-array-value-stdin-complex-yaml-file-to-stdout │ │ │ ├── allow-overwrite-yaml-conflicting-nested-scalar-stdin-complex-yaml-file-to-stdout │ │ │ ├── empty-environment-filtered-at-non-existing-key-a │ │ │ ├── empty-stdin-input-from-file-to-stdout │ │ │ ├── empty-stdin-input-from-key-value-pairs-to-stdout │ │ │ ├── environment-filtered-at-new-key-a │ │ │ ├── environment-filtered-at-new-nested-key-with-array │ │ │ ├── environment-filtered-at-new-nested-key-with-object │ │ │ ├── environment-filtered-at-root │ │ │ ├── environment-filtered-no-match-at-root │ │ │ ├── environment-unfiltered-at-root │ │ │ ├── fail-environment-filtered-at-existing-key-a-which-is-no-map │ │ │ ├── fail-environment-invalid-filter │ │ │ ├── fail-invalid-dotted-pointer │ │ │ ├── fail-invalid-json-stdin │ │ │ ├── fail-invalid-output-format │ │ │ ├── fail-invalid-yaml-stdin │ │ │ ├── fail-multi-doc-yaml-with-conflict-from-file-to-stdout │ │ │ ├── fail-multi-doc-yaml-with-conflict-from-stdin-to-stdout │ │ │ ├── fail-no-data-from-stdin-and-no-file-specified │ │ │ ├── fail-no-stdin-with-explicit-stdin │ │ │ ├── fail-no-stdin-with-two-conflicting-files-to-stdout │ │ │ ├── fail-select-non-existing-object │ │ │ ├── fail-set-various-values-with-conflict │ │ │ ├── fail-use-of-stdin-more-than-once │ │ │ ├── fail-yaml-conflicting-array-value-stdin-complex-yaml-file-to-stdout │ │ │ ├── fail-yaml-conflicting-nested-scalar-stdin-complex-yaml-file-to-stdout │ │ │ ├── fail-yaml-stdin-with-yaml-file-conflicting-scalar-to-stdout │ │ │ ├── json-stdin-at-before-path-to-stdout │ │ │ ├── json-stdin-at-before-path-with-explicit-stdin-marker-and-various-at-flags-to-stdout │ │ │ ├── json-stdin-at-before-path-with-explicit-stdin-marker-to-stdout │ │ │ ├── multi-document-yaml-stdin-to-stdout │ │ │ ├── no-stdin-ignores-input-from-stdin │ │ │ ├── no-stdin-with-two-similar-complex-yaml-files-to-stdout │ │ │ ├── select-nested-scalar-value-array │ │ │ ├── select-nested-scalar-value-array-on-merged-value │ │ │ ├── select-nested-scalar-value-array-on-merged-value-with-move │ │ │ ├── select-single-scalar-value │ │ │ ├── select-single-scalar-value-with-move │ │ │ ├── set-various-values-with-conflict-and-overwrite │ │ │ ├── set-various-values-without-conflict │ │ │ ├── unconsumed-at-flag-applies-to-final-value │ │ │ ├── yaml-stdin-to-stdout-as-yaml │ │ │ ├── yaml-stdin-to-stdout-output-format-unspecified │ │ │ ├── yaml-stdin-with-at-to-stdout-as-yaml │ │ │ └── yaml-stdin-with-yaml-file-same-scalar-value-to-stdout │ │ ├── substitute │ │ │ ├── data-stdin-json-data-partial-input-success │ │ │ ├── data-stdin-json-data-validated-fix-with-replacements-stdout │ │ │ ├── data-stdin-json-single-template-stdout │ │ │ ├── data-stdin-partial-0-output-stdout │ │ │ ├── data-stdin-partial-1-output-stdout │ │ │ ├── data-stdin-yaml-multi-template-stdout │ │ │ ├── data-stdin-yaml-multi-template-stdout-explicit-separator │ │ │ ├── data-stdin-yaml-multi-template-to-same-file │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-again │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-again-more │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-again-more-output │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-again-output │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-explicit-separator │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-explicit-separator-output │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-more │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-more-output │ │ │ ├── data-stdin-yaml-multi-template-to-same-file-output │ │ │ ├── data-stdin-yaml-single-relative-template-stdout │ │ │ ├── data-stdin-yaml-single-template-file-non-existing-directory │ │ │ ├── data-stdin-yaml-single-template-output-file-with-nonexisting-directory │ │ │ │ └── some │ │ │ │ │ └── sub │ │ │ │ │ └── directory │ │ │ │ │ └── output │ │ │ ├── data-stdin-yaml-single-template-stdout │ │ │ ├── fail-data-stdin-and-no-specs │ │ │ ├── fail-data-stdin-json-data-validated-stdout │ │ │ ├── fail-data-stdin-template-misses-key │ │ │ ├── fail-data-stdin-template-stdin │ │ │ ├── fail-invalid-data-format │ │ │ ├── fail-invalid-data-format-multi-document-yaml │ │ │ ├── fail-multiple-templates-from-stdin │ │ │ ├── fail-no-data-and-no-specs │ │ │ ├── fail-not-enough-replacements │ │ │ ├── fail-source-is-destination-single-spec │ │ │ ├── fail-validation-data-stdin-json-template │ │ │ ├── handlebars │ │ │ │ ├── data-stdin-partial-0-output-stdout │ │ │ │ └── data-stdin-partial-1-output-stdout │ │ │ ├── liquid │ │ │ │ └── filter-base64 │ │ │ ├── template-from-complex-template │ │ │ ├── template-stdin-hbs-output-stdout │ │ │ ├── template-stdin-hbs-output-stdout-to-file │ │ │ ├── template-stdin-hbs-output-stdout-to-file-output │ │ │ └── validation-success-data-stdin-json-template │ │ └── vault │ │ │ ├── always-encrypt │ │ │ ├── add-success-as-unknown-user │ │ │ ├── list-with-relative-secrets-dir │ │ │ ├── precondition-vault-config-after-init │ │ │ ├── show-fail-for-new-secret-as-unknown-user │ │ │ └── show-failure-as-unknown-user │ │ │ ├── edit │ │ │ ├── add-from-stdin-no-tty-show │ │ │ ├── edit-changed-file │ │ │ ├── edit-new-resource-with-changed-secrets-dir │ │ │ ├── known-resource-edit-editor-not-in-path │ │ │ ├── ls-with-single-resource │ │ │ ├── resource-add-from-stdin │ │ │ ├── resource-add-from-stdin-no-tty │ │ │ ├── resource-add-overwrite-protection │ │ │ ├── resource-edit-encrypt-failure │ │ │ ├── resource-edit-encrypt-failure-no-try-encrypt │ │ │ ├── resource-remove-multiple-existing │ │ │ ├── resource-remove-multiple-existing-after │ │ │ ├── resource-remove-non-existing │ │ │ ├── resource-show │ │ │ ├── show-new-resource-with-changed-secrets-dir │ │ │ ├── unknown-resource-edit │ │ │ └── unknown-resource-show │ │ │ ├── init-no-gpg-installed │ │ │ ├── add-empty-recipients │ │ │ ├── add-no-gpg │ │ │ ├── init-no-gpg │ │ │ └── show-no-gpg │ │ │ ├── init-with-gpg1 │ │ │ ├── gpg1-vault-recipient-add-untrusted-user-with-fingerprint │ │ │ └── gpg1-vault-recipient-add-untrusted-user-with-fingerprint-metadata │ │ │ │ ├── keys │ │ │ │ ├── 7435ACDC03D55429C41637C4DB9831D842C18D28 │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ └── recipients │ │ │ ├── init │ │ │ ├── add-with-subdirectory │ │ │ ├── add-without-vault-description │ │ │ ├── edit-with-absolute-vault-directory │ │ │ ├── init-change-secrets-location-folder-structure │ │ │ │ ├── keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ └── recipients │ │ │ ├── init-explicit-recipients-path │ │ │ │ ├── .gpg-keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── init-failure-no-secret-key │ │ │ ├── init-first-partition-flag │ │ │ │ ├── .gpg-keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── sec │ │ │ │ │ └── .gpg-id │ │ │ │ └── sy-vault.yml │ │ │ ├── init-first-partition-invalid-secrets-dir-dot │ │ │ ├── init-first-partition-no-secrets-dir │ │ │ ├── init-multiple-users │ │ │ │ ├── .gpg-id │ │ │ │ ├── .gpg-keys │ │ │ │ │ ├── 905E53FE2FC0A500100AB80B056F92A52DF04D4E │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ └── sy-vault.yml │ │ │ ├── init-relative-named-recipients │ │ │ │ ├── .gpg-keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── secrets │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── init-relative-unnamed-recipients │ │ │ │ ├── .gpg-keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── secrets │ │ │ │ │ └── .gpg-id │ │ │ │ └── sy-vault.yml │ │ │ ├── init-single-user-absolute-directory │ │ │ │ ├── keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── recipients │ │ │ │ └── vault.yml │ │ │ ├── init-single-user-with-multiple-signatures │ │ │ │ ├── .gpg-id │ │ │ │ ├── .gpg-keys │ │ │ │ │ └── 905E53FE2FC0A500100AB80B056F92A52DF04D4E │ │ │ │ └── sy-vault.yml │ │ │ ├── init-single-user │ │ │ │ ├── .gpg-id │ │ │ │ ├── .gpg-keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ └── sy-vault.yml │ │ │ ├── init-will-not-overwrite-vault-config │ │ │ ├── init-will-not-write-into-existing-nonempty-directory │ │ │ ├── init-will-overwrite-recipients-file │ │ │ ├── init-with-at-argument │ │ │ ├── init-with-key-specified-explicitly │ │ │ ├── init-with-multiple-specified-keys │ │ │ ├── init-with-multiple-viable-keys │ │ │ ├── list-changed-secrets-location │ │ │ ├── list-with-name │ │ │ ├── resource-add-relative-dir-failure │ │ │ ├── resource-add-relative-dir-success │ │ │ └── successful-init │ │ │ ├── partitions │ │ │ ├── partition-add-ambiguous-private-keys │ │ │ ├── partition-add-as-another-user-no-recipient │ │ │ ├── partition-add-as-another-user-no-recipient-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ ├── 7435ACDC03D55429C41637C4DB9831D842C18D28 │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── private-partition │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-add-failure │ │ │ ├── partition-add-failure-duplicate-recipients │ │ │ ├── partition-add-fourth-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ ├── subdir │ │ │ │ │ ├── second │ │ │ │ │ │ └── recipients │ │ │ │ │ └── third │ │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-add-fourth-named-absolute-path │ │ │ ├── partition-add-multiple-non-existing-user-ids │ │ │ ├── partition-add-multiple-private-keys │ │ │ ├── partition-add-qualified-resource │ │ │ ├── partition-add-second-named │ │ │ ├── partition-add-second-named-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ ├── subdir │ │ │ │ │ └── second │ │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-add-third-named-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ ├── subdir │ │ │ │ │ ├── second │ │ │ │ │ │ └── recipients │ │ │ │ │ └── third │ │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-add-third-unnamed-relative-path │ │ │ ├── partition-add-to-existing-empty-directory │ │ │ ├── partition-add-to-existing-non-empty-directory │ │ │ ├── partition-add-unqualified-resource │ │ │ ├── partition-first-unnamed │ │ │ ├── partition-first-unnamed-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-recipients-list-fail-missing-key │ │ │ ├── partition-recipients-list-fail-missing-key-as-prime-recipient │ │ │ ├── partition-remove-by-index-failure-cannot-remove-leader │ │ │ ├── partition-remove-by-index-failure-does-not-exist │ │ │ ├── partition-remove-by-name-failure-does-not-exist │ │ │ ├── partition-remove-by-path-failure-does-not-exist │ │ │ ├── partition-remove-failure-ambiguous-name │ │ │ ├── partition-remove-fourth-by-index │ │ │ ├── partition-remove-fourth-by-index-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ ├── subdir │ │ │ │ │ ├── second │ │ │ │ │ │ └── recipients │ │ │ │ │ └── third │ │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-remove-qualified-resource │ │ │ ├── partition-remove-second-by-resource-dir │ │ │ ├── partition-remove-second-by-resource-dir-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ ├── subdir │ │ │ │ │ ├── second │ │ │ │ │ │ └── recipients │ │ │ │ │ └── third │ │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-remove-success-similarly-named-leader │ │ │ ├── partition-remove-success-similarly-named-leader-directory │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-remove-third-by-name │ │ │ ├── partition-remove-third-by-name-directory │ │ │ │ ├── etc │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── first │ │ │ │ │ └── recipients │ │ │ │ ├── subdir │ │ │ │ │ ├── second │ │ │ │ │ │ └── recipients │ │ │ │ │ └── third │ │ │ │ │ │ └── recipients │ │ │ │ └── sy-vault.yml │ │ │ ├── partition-remove-unqualified-resource │ │ │ ├── partition-resource-list │ │ │ ├── partition-resource-show-qualified-non-existing-resource │ │ │ ├── partition-resource-show-qualified-path │ │ │ └── partition-resource-show-unqualified-resource │ │ │ ├── recipients-and-partitions-always-encrypt │ │ │ ├── fail-invalid-trust-model │ │ │ ├── fail-recipient-add-without-prior-import-of-all-users-wrong-partition │ │ │ ├── precondition-vault-with-multiple-partitions-config │ │ │ ├── precondition-vault-with-multiple-partitions │ │ │ │ ├── keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── recipient-add-without-prior-import-of-all-users-right-partition │ │ │ ├── resource-add-from-stdin-with-editor │ │ │ ├── vault-listing-with-missing-key │ │ │ ├── vault-with-multiple-partitions-after-recipient-add │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-after-recipient-init │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-add-resource-to-p1 │ │ │ ├── vault-with-multiple-partitions-new-recipient-add-resource-to-p2 │ │ │ ├── vault-with-multiple-partitions-new-recipient-add-resource-to-p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory │ │ │ │ ├── keys │ │ │ │ │ ├── 7435ACDC03D55429C41637C4DB9831D842C18D28 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-with-import │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-with-import │ │ │ ├── vault-with-multiple-partitions-recipient-add-to-multiple │ │ │ └── vault-with-multiple-partitions-recipient-init │ │ │ ├── recipients-and-partitions │ │ │ ├── precondition-vault-with-multiple-partitions │ │ │ │ ├── keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-after-recipient-add │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-after-recipient-init │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-remove-oneself-from-p3-fails-directory │ │ │ │ ├── keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail-directory │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory │ │ │ │ ├── keys │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-with-import │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import-directory │ │ │ │ ├── keys │ │ │ │ │ ├── 1E1114E11B362B46B53E1ABAEF17047AB488BD82 │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ ├── p1 │ │ │ │ ├── p2 │ │ │ │ └── p3 │ │ │ ├── vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-with-import │ │ │ ├── vault-with-multiple-partitions-new-recipient-show-resource-in-p1 │ │ │ ├── vault-with-multiple-partitions-new-recipient-show-resource-in-p2 │ │ │ ├── vault-with-multiple-partitions-new-recipient-show-resource-in-p3 │ │ │ ├── vault-with-multiple-partitions-recipient-add-to-multiple │ │ │ ├── vault-with-multiple-partitions-recipient-add-to-unknown │ │ │ ├── vault-with-multiple-partitions-recipient-init │ │ │ └── vault-with-multiple-partitions-remove-oneself-from-p3-fails │ │ │ ├── recipients │ │ │ ├── remove │ │ │ │ ├── recipient-after-remove-show-failure │ │ │ │ ├── recipient-remove-failure-just-in-keychain │ │ │ │ ├── recipient-remove-failure-one-correct-and-one-unknown-key │ │ │ │ ├── recipient-remove-failure-unknown-key │ │ │ │ └── recipient-remove-success │ │ │ ├── unverified │ │ │ │ ├── vault-recipient-add-metadata-right-after-init │ │ │ │ │ ├── keys │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── recipients │ │ │ │ ├── vault-recipient-add-untrusted-user-a-with-fingerprint │ │ │ │ ├── vault-recipient-add-untrusted-user-a-with-fingerprint-ambiguously │ │ │ │ ├── vault-recipient-add-untrusted-user-a-with-fingerprint-invalid-signing-key │ │ │ │ ├── vault-recipient-add-untrusted-user-a-with-fingerprint-valid-signing-key │ │ │ │ ├── vault-recipient-add-untrusted-user-with-fingerprint │ │ │ │ ├── vault-recipient-add-untrusted-user-with-fingerprint-metadata │ │ │ │ ├── vault-recipient-add-unverified-invalid-fingerprint │ │ │ │ ├── vault-recipient-add-unverified-unchanged-state │ │ │ │ │ ├── .gpg-id │ │ │ │ │ ├── keys │ │ │ │ │ │ ├── 7435ACDC03D55429C41637C4DB9831D842C18D28 │ │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ │ └── sy-vault.yml │ │ │ │ ├── vault-recipient-add-valid-fingerprint-key-not-present-in-keys-dir │ │ │ │ └── vault-recipients-add-unverified-failure-with-multi-recipient-keyfile │ │ │ └── verified │ │ │ │ ├── add-success-as-unknown-user │ │ │ │ ├── list-with-relative-secrets-dir │ │ │ │ ├── recipient-add-b-failure │ │ │ │ ├── recipient-add-b-recipients │ │ │ │ ├── recipient-add-b-success-after-signing │ │ │ │ ├── recipient-add-c │ │ │ │ ├── recipient-add-c-keys-dir │ │ │ │ ├── keys │ │ │ │ │ ├── 905E53FE2FC0A500100AB80B056F92A52DF04D4E │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ └── recipients │ │ │ │ ├── recipient-add-from-keychain │ │ │ │ ├── recipient-add-from-keychain-recipients │ │ │ │ ├── recipient-init-c-config-dir │ │ │ │ ├── keys │ │ │ │ │ ├── 905E53FE2FC0A500100AB80B056F92A52DF04D4E │ │ │ │ │ └── D6339718E9B58FCE3C66C78AAA5B7BF150F48332 │ │ │ │ └── recipients │ │ │ │ ├── recipients-add-from-keychain-show-as-recipient │ │ │ │ ├── recipients-init-single-secret-key │ │ │ │ ├── recipients-list-after-adding-c-successfully │ │ │ │ ├── recipients-list-after-requesting-membership │ │ │ │ ├── show-fail-for-new-secret-as-unknown-user │ │ │ │ ├── show-failure-as-unknown-user │ │ │ │ ├── show-failure-encrypt-new-secret-missing-pub-key │ │ │ │ ├── show-success-as-user-b │ │ │ │ └── show-success-as-user-c │ │ │ └── stateless │ │ │ ├── invalid-vault-path │ │ │ └── unsupported-shell │ ├── substitute │ │ ├── complex.tpl │ │ ├── data-for-complex.tpl.yml │ │ ├── data.json.hbs │ │ ├── partials │ │ │ ├── base0.hbs │ │ │ ├── base1.hbs │ │ │ ├── included.liquid │ │ │ └── template.hbs │ │ ├── the-answer.hbs │ │ └── with-partial.liquid │ └── tester.sec.asc ├── zz-getting-started.sh └── zz-vault-gpg1.sh ├── stateful-journey-test.sh ├── stateless-journey-test.sh └── utilities.sh /.editorconfig: -------------------------------------------------------------------------------- 1 | # 4 space indentation 2 | [*.sh] 3 | indent_style = space 4 | indent_size = 2 5 | 6 | [*.rs] 7 | indent_style = space 8 | indent_size = 4 9 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | _Please choose what applies in your case, these headings are just guides_ 2 | 3 | ### Expected behaviour 4 | 5 | ### Actual behavior 6 | 7 | ### Steps to reproduce 8 | 9 | ### The version you were using 10 | 11 | ``` 12 | sy --version 13 | ``` 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | /.tools/ 3 | .vscode/ 4 | /.docker-cargo-cache 5 | .DS_Store 6 | target/ 7 | sy-*.tar.gz* 8 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 120 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ### Contributing to Share Secrets Safely 2 | 3 | 👍🎉 First off, thanks a lot for taking the time! 🎉👍 4 | 5 | In order not to waste it, let's keep things short and simple :). 6 | 7 | 1. Write a unit-test or journey test which tests for the desired change. 8 | * run unitests with `cargo test --all` 9 | * run journey tests with `make state(less|ful)-journey-tests` 10 | 1. Implement the change so that the tests written above pass. 11 | 12 | If you think your changes could be controversial, maybe because it's a feature, please create an issue before to give it some exposure and create a space for discussion. This can be as easy as: `Hey, do you need ?`, just to prevent unnecessary work. 13 | 14 | Thanks again, and happy hacking! 15 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 4.0.11 2 | -------------------------------------------------------------------------------- /bin/find-executables.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eu 3 | 4 | directory="${1:?First argument must be the directory containing executables}" 5 | 6 | for f in "$directory"/*; do 7 | [[ -x "$f" && -f "$f" ]] && echo "${f##*/}" 8 | done 9 | 10 | exit 0 11 | -------------------------------------------------------------------------------- /bin/install-dependencies-debian.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | apt-get install -y libgettextpo-dev libgpgme11-dev libgpg-error-dev 4 | -------------------------------------------------------------------------------- /bin/install-dependencies-macos.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | brew install gpgme gettext 4 | brew link --force gettext 5 | -------------------------------------------------------------------------------- /bin/package.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | directory="${1:?First argument must be the directory containing executables}" 6 | output=${2:?Second argument is the package file to create} 7 | 8 | root="$(cd "${0%/*}" && pwd)" 9 | 10 | # shellcheck disable=2207 11 | exeFiles=( $("$root/find-executables.sh" "$directory") ) 12 | 13 | ( 14 | cd "$directory" 15 | tar czf "$output" "${exeFiles[@]}" 16 | ) 17 | mv "$directory/$output" . 18 | gpg --yes --output "$output".gpg --detach-sig "$output" 19 | -------------------------------------------------------------------------------- /bin/tag-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu -o pipefail 4 | 5 | set -x 6 | version=${1:?First argument is the version you want to tag, like '1.0.0'} 7 | notes_path=${2:?Second argument a file path to the release notes file to include.} 8 | 9 | find . -name Cargo.toml -type f -not -path './.*' | \ 10 | while read -r cf; do 11 | sed -i "" -E "s/^version = \".*\"/version = \"$version\"/" "$cf" 12 | done 13 | 14 | git commit -am "bumping version to $version" 15 | git tag -s --cleanup=verbatim -F "${notes_path}" "$version" 16 | 17 | for lib in lib/tools lib/vault .; do 18 | ( 19 | cd $lib 20 | cargo publish 21 | ) 22 | done 23 | 24 | git push --tags origin master 25 | -------------------------------------------------------------------------------- /bin/update-homebrew-formula.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eu -o pipefail 3 | 4 | [[ $# != 3 ]] && { 5 | echo 1>&2 "USAGE: $0 " 6 | exit 2 7 | } 8 | 9 | VERSION="${1:?}" 10 | TEMPLATE_FILE="${2:?}" 11 | HOMEBREW_FILE="${3:?}" 12 | 13 | OSX_FILE=sy-cli-Darwin-x86_64.tar.gz 14 | LINUX_FILE=sy-cli-Linux-x86_64.tar.gz 15 | 16 | [[ -f $OSX_FILE && -f $LINUX_FILE ]] || { 17 | echo 1>&2 "Need both files '$OSX_FILE' and '$LINUX_FILE' to be available" 18 | exit 2 19 | } 20 | 21 | SHA_SUM=$( 22 | command -v shasum 2>/dev/null \ 23 | || { echo 1>&2 "sha256 program not found"; false; } \ 24 | ) 25 | 26 | OSX_SHA256="$($SHA_SUM -a 256 $OSX_FILE | awk '{print $1}')" 27 | LINUX_SHA256="$($SHA_SUM -a 256 $LINUX_FILE | awk '{print $1}')" 28 | TEMPLATE_NOTE="---> DO NOT EDIT <--- (this file was generated from $TEMPLATE_FILE" 29 | export VERSION OSX_SHA256 LINUX_SHA256 TEMPLATE_NOTE 30 | 31 | envsubst < "$TEMPLATE_FILE" > "$HOMEBREW_FILE" 32 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | /book/ 2 | -------------------------------------------------------------------------------- /doc/book.toml: -------------------------------------------------------------------------------- 1 | [book] 2 | authors = ["Sebastian Thiel"] 3 | multilingual = false 4 | -------------------------------------------------------------------------------- /doc/src/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | [Introduction](./index.md) 4 | [Comparisons](./compare.md) 5 | [Installation](./installation.md) 6 | - [Getting Started with The Vault](./vault/first-steps.md) 7 | - [The Vault](./vault/about.md) 8 | - [vault init](./vault/init.md) 9 | - [vault add (Resource)](./vault/add.md) 10 | - [vault edit (Resource)](./vault/edit.md) 11 | - [vault list (Resource)](./vault/list.md) 12 | - [vault remove (Resource)](./vault/remove.md) 13 | - [vault show (Resource)](./vault/show.md) 14 | - [vault recipients](./vault/recipients/about.md) 15 | - [vault recipients init](./vault/recipients/init.md) 16 | - [vault recipients add](./vault/recipients/add.md) 17 | - [vault recipients list](./vault/recipients/list.md) 18 | - [vault recipients remove](./vault/recipients/remove.md) 19 | - [vault partitions](./vault/partitions/about.md) 20 | - [vault partitions add](./vault/partitions/add.md) 21 | - [vault partitions remove](./vault/partitions/remove.md) 22 | - [Tooling](./tools/about.md) 23 | - [substitute](./tools/substitute.md) 24 | - [process](./tools/process.md) 25 | - [extract](./tools/extract.md) 26 | -------------------------------------------------------------------------------- /doc/src/tools/about.md: -------------------------------------------------------------------------------- 1 | Tools are everything not directly related to managing secrets, and help to use them 2 | while avoiding them to touch disk. 3 | 4 | This can be achieved by putting the following capabilities together: 5 | 6 | 1. **Context Creation** 7 | * A context is just a bunch of properties in a structure. 8 | * Used to instantiate and customize templates. 9 | * Parts of it may be secret. 10 | * It can live in multiple places, such as files and in-memory as it is produced 11 | in real-time by programs. The latter can be 'sheesy' decrypting a file on the fly. 12 | 2. **Template Substitution** 13 | * Using a templating engine and a set of templates, the data can be placed in 14 | any kind of file to be consumed by other tools. 15 | * It's also useful to maintain a library of templates which are controlled by 16 | contexts, which change depending on the one use-case. 17 | 18 | 19 | As an abstract example, this is how the build-pipeline for kubernetes could look like: 20 | 21 | ```bash 22 | stage=production 23 | merge \ 24 | <(show-secret $stage/infrastructure.yml) \ 25 | etc/team.json \ 26 | etc/stages/$stage.yml \ 27 | | substitute \ 28 | --separator $'---\n' \ 29 | etc/template/k8s-shared-infrastructure.yml \ 30 | etc/template/k8s-$stage-infrastructure.yml \ 31 | | kubectl --kubeconfig <(show-secret $stage/kube.config) apply -f - 32 | ``` 33 | 34 | **Read on to learn more about the individual tools to _merge_, _substitute_ and 35 | _extract_**. 36 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/extract/credentials.yml: -------------------------------------------------------------------------------- 1 | user: 2 | name: Hans 3 | password: geheim -------------------------------------------------------------------------------- /doc/src/tools/fixtures/process/game-config.yml: -------------------------------------------------------------------------------- 1 | player: 2 | lives: 3 3 | enemies: 4 | type: aliens 5 | cheat: true 6 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/process/multi-document.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pre-production: 3 | replicas: 1 4 | max-memory: 64M 5 | --- 6 | production: 7 | replicas: 3 8 | max-memory: 1024M 9 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/process/multi-stage-config.yml: -------------------------------------------------------------------------------- 1 | pre-production: 2 | replicas: 1 3 | max-cpu: 200mi 4 | max-memory: 64M 5 | production: 6 | replicas: 3 7 | max-cpu: 2000mi 8 | max-memory: 1024M 9 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/process/project.yml: -------------------------------------------------------------------------------- 1 | name: super-punch 2 | kind: ios-game -------------------------------------------------------------------------------- /doc/src/tools/fixtures/process/team.yml: -------------------------------------------------------------------------------- 1 | name: dept. nine 2 | product-owner: Max Owner -------------------------------------------------------------------------------- /doc/src/tools/fixtures/substitute/base0.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{title}} 3 | 4 |

Derived from base0.hbs

5 | {{~> page}} 6 | 7 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/substitute/base1.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{title}} 3 | 4 |

Derived from base1.hbs

5 | {{~> page}} 6 | 7 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/substitute/data-processor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cat <Rendered in partial, parent is {{parent}}

3 | {{/inline}} 4 | {{~> (parent)~}} 5 | -------------------------------------------------------------------------------- /doc/src/tools/fixtures/substitute/template.tpl: -------------------------------------------------------------------------------- 1 | The normal title: {{title}} 2 | The capitalized title: {{title_lowercase}} 3 | -------------------------------------------------------------------------------- /doc/src/vault/add.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault add --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/edit.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault edit --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/init.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault init --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/list.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault list --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/partitions/about.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault partitions --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/partitions/add.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault partitions add --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/partitions/remove.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault partitions remove --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/recipients/about.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault recipients --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/recipients/add.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault recipients add --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/recipients/init.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault recipients init --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/recipients/list.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault recipients list --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/recipients/remove.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault recipients remove --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/remove.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault remove --help 4 | ``` 5 | -------------------------------------------------------------------------------- /doc/src/vault/show.md: -------------------------------------------------------------------------------- 1 | 2 | ```bash,use=sy-in-path,exec 3 | sy vault show --help 4 | ``` 5 | -------------------------------------------------------------------------------- /etc/brew/sheesy.rb.in: -------------------------------------------------------------------------------- 1 | class Sheesy < Formula 2 | # '${TEMPLATE_NOTE}' 3 | version '${VERSION}' 4 | desc "share secrets within teams to avoid plain-text secrets from day one" 5 | homepage "https://github.com/share-secrets-safely/cli" 6 | depends_on "gpgme" 7 | 8 | if OS.mac? 9 | url "https://github.com/share-secrets-safely/cli/releases/download/#{version}/sy-cli-Darwin-x86_64.tar.gz" 10 | sha256 "${OSX_SHA256}" 11 | elsif OS.linux? 12 | url "https://github.com/share-secrets-safely/cli/releases/download/#{version}/sy-cli-Linux-x86_64.tar.gz" 13 | sha256 "${LINUX_SHA256}" 14 | end 15 | 16 | def install 17 | bin.install "sy" 18 | bin.install "sye" 19 | bin.install "syv" 20 | bin.install "syp" 21 | bin.install "sys" 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /etc/docker/Dockerfile.alpine-docs: -------------------------------------------------------------------------------- 1 | FROM alpine_with_gpg2:stable 2 | 3 | RUN apk --no-cache -U add curl tree git 4 | RUN curl --fail -Lo termbook.tar.gz https://github.com/Byron/termbook/releases/download/1.4.2/termbook-1.4.2-x86_64-unknown-linux-musl.tar.gz \ 5 | && tar xzvf termbook.tar.gz \ 6 | && rm termbook.tar.gz \ 7 | && mv termbook /usr/local/bin/ 8 | -------------------------------------------------------------------------------- /etc/docker/Dockerfile.alpine-gpg2: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | RUN apk -U --no-cache add gnupg bash ncurses coreutils -------------------------------------------------------------------------------- /etc/docker/Dockerfile.musl-build: -------------------------------------------------------------------------------- 1 | FROM clux/muslrust:stable 2 | 3 | RUN apt-get update 4 | RUN apt-get install -y autoconf=2.69-9 5 | 6 | ENV GETTEXT_VERSION=0.19.3 7 | 8 | RUN curl -sL https://ftp.gnu.org/gnu/gettext/gettext-${GETTEXT_VERSION}.tar.gz -o /gettext-${GETTEXT_VERSION}.tar.gz 9 | RUN cd / && tar -xf /gettext-${GETTEXT_VERSION}.tar.gz 10 | RUN cd /gettext-${GETTEXT_VERSION} && ./configure --disable-openmp --without-emacs --disable-java --disable-c++ --enable-fast-install > /dev/null 11 | RUN cd /gettext-${GETTEXT_VERSION} make -j2 > /dev/null && make install > /dev/null 12 | 13 | ENV LD_LIBRARY_PATH=/usr/local/lib 14 | -------------------------------------------------------------------------------- /etc/docker/Dockerfile.rust: -------------------------------------------------------------------------------- 1 | FROM rust:latest 2 | 3 | RUN apt-get update 4 | RUN apt-get install -y autoconf 5 | 6 | ENV GETTEXT_VERSION=0.19.3 7 | 8 | RUN curl -sL https://ftp.gnu.org/gnu/gettext/gettext-${GETTEXT_VERSION}.tar.gz -o /gettext-${GETTEXT_VERSION}.tar.gz 9 | RUN tar -xf /gettext-${GETTEXT_VERSION}.tar.gz 10 | RUN cd /gettext-${GETTEXT_VERSION} && ./configure --without-emacs --disable-java --disable-c++ --enable-fast-install > /dev/null 11 | RUN cd /gettext-${GETTEXT_VERSION} make -j2 > /dev/null && make install > /dev/null 12 | 13 | ENV LD_LIBRARY_PATH=/usr/local/lib 14 | -------------------------------------------------------------------------------- /etc/docker/Dockerfile.travis-ubuntu: -------------------------------------------------------------------------------- 1 | from ubuntu:trusty 2 | 3 | run apt-get update 4 | run apt-get install -y libgettextpo-dev libgpgme11-dev libgpg-error-dev 5 | run apt-get install -y curl 6 | run curl https://sh.rustup.rs -sSf | sh -s -- -y 7 | run apt-get install -y build-essential 8 | 9 | -------------------------------------------------------------------------------- /lib/tools/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Sebastian Thiel "] 3 | name = "sheesy-tools" 4 | version = "4.0.11" 5 | edition = "2018" 6 | 7 | description = "Tooling to make using shared secrets effortless." 8 | license = "MIT" 9 | repository = "https://github.com/share-secrets-safely/cli" 10 | homepage = "https://github.com/share-secrets-safely/cli/tree/master/lib/tools" 11 | documentation = "https://docs.rs/sheesy-tools" 12 | 13 | [features] 14 | default = ["substitute", "process"] 15 | substitute = ["base64", "atty", "handlebars", "liquid", "liquid-error", "yaml-rust"] 16 | process = ["yaml-rust", "glob", "treediff", "serde"] 17 | 18 | [lib] 19 | doctest = false 20 | 21 | [dependencies] 22 | failure = "0.1.7" 23 | atty = {version = "0.2.14", optional = true} 24 | serde_json = "1.0.51" 25 | serde_yaml = "0.8.11" 26 | serde = {version = "1.0.106", optional = true} 27 | yaml-rust = {version = "0.4.3", optional = true} 28 | glob = {version = "0.3", optional = true} 29 | treediff = {version = "4.0.0", features = ["with-yaml-rust", "with-serde-json"], optional = true} 30 | liquid = {version = "0.19", optional = true} 31 | handlebars = {version = "3.0.1", optional = true} 32 | base64 = {version = "0.12.0", optional = true} 33 | liquid-error = {version = "0.19.0", optional = true} 34 | -------------------------------------------------------------------------------- /lib/tools/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![forbid(unsafe_code)] 2 | 3 | #[macro_use] 4 | extern crate failure; 5 | extern crate serde_json as json; 6 | extern crate serde_yaml as yaml; 7 | 8 | #[cfg(feature = "substitute")] 9 | extern crate atty; 10 | #[cfg(feature = "substitute")] 11 | extern crate base64; 12 | #[cfg(feature = "process")] 13 | extern crate glob; 14 | #[cfg(feature = "substitute")] 15 | extern crate handlebars; 16 | #[cfg(feature = "substitute")] 17 | extern crate liquid; 18 | #[cfg(feature = "substitute")] 19 | extern crate liquid_error; 20 | #[cfg(feature = "process")] 21 | extern crate serde; 22 | #[cfg(feature = "process")] 23 | extern crate treediff; 24 | #[cfg(any(feature = "substitute", feature = "process"))] 25 | extern crate yaml_rust; 26 | 27 | #[cfg(feature = "process")] 28 | pub mod process; 29 | #[cfg(feature = "substitute")] 30 | pub mod substitute; 31 | -------------------------------------------------------------------------------- /lib/vault/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Sebastian Thiel "] 3 | name = "sheesy-vault" 4 | version = "4.0.11" 5 | edition = "2018" 6 | 7 | description = "Vault functionality used by 'share-secrets-safely' CLI. Use it to interact with GPG based vaults." 8 | license = "LGPL-2.1" 9 | repository = "https://github.com/share-secrets-safely/cli" 10 | homepage = "https://github.com/share-secrets-safely/cli/tree/master/lib/vault" 11 | documentation = "https://docs.rs/sheesy-vault" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | conv = "0.3.3" 18 | atty = "0.2.14" 19 | lazy_static = "1.4.0" 20 | failure = "0.1.7" 21 | failure_derive = "0.1.7" 22 | gpgme = { version = "0.8.0" } 23 | serde = "1.0.106" 24 | serde_derive = "1.0.106" 25 | serde_yaml = "0.8.11" 26 | itertools = "0.9.0" 27 | yaml-rust = "0.4.3" 28 | glob = "0.3" 29 | mktemp = "0.4.0" 30 | -------------------------------------------------------------------------------- /lib/vault/src/lib.rs: -------------------------------------------------------------------------------- 1 | extern crate atty; 2 | extern crate conv; 3 | #[macro_use] 4 | extern crate failure; 5 | extern crate failure_derive; 6 | extern crate glob; 7 | extern crate gpgme; 8 | #[macro_use] 9 | extern crate itertools; 10 | #[macro_use] 11 | extern crate lazy_static; 12 | extern crate mktemp; 13 | extern crate serde; 14 | #[macro_use] 15 | extern crate serde_derive; 16 | extern crate serde_yaml; 17 | extern crate yaml_rust; 18 | 19 | mod base; 20 | pub mod error; 21 | mod init; 22 | mod partitions; 23 | mod recipients; 24 | mod resource; 25 | mod spec; 26 | mod util; 27 | 28 | pub use base::{TrustModel, Vault, VaultExt}; 29 | pub use spec::*; 30 | pub use util::print_causes; 31 | -------------------------------------------------------------------------------- /lib/vault/src/recipients/mod.rs: -------------------------------------------------------------------------------- 1 | mod add; 2 | mod other; 3 | mod remove; 4 | mod util; 5 | -------------------------------------------------------------------------------- /lib/vault/tests/vault-serde.rs: -------------------------------------------------------------------------------- 1 | extern crate serde_yaml; 2 | extern crate sheesy_vault; 3 | 4 | use sheesy_vault::TrustModel; 5 | use sheesy_vault::Vault; 6 | 7 | #[test] 8 | fn vault_trust_model_serde() { 9 | let mut v = Vault::default(); 10 | v.trust_model = Some(TrustModel::GpgWebOfTrust); 11 | let res = serde_yaml::to_string(&v).unwrap(); 12 | 13 | assert_eq!( 14 | res, 15 | r#"--- 16 | name: ~ 17 | auto_import: true 18 | trust_model: gpg-web-of-trust 19 | secrets: "." 20 | gpg_keys: ~ 21 | recipients: ".gpg-id""# 22 | ); 23 | assert_eq!( 24 | serde_yaml::to_string(&serde_yaml::from_str::(&res).unwrap()).unwrap(), 25 | res 26 | ); 27 | } 28 | 29 | #[test] 30 | fn default_vault_ser() { 31 | let v = Vault::default(); 32 | assert_eq!( 33 | serde_yaml::to_string(&v).unwrap(), 34 | r#"--- 35 | name: ~ 36 | auto_import: true 37 | trust_model: ~ 38 | secrets: "." 39 | gpg_keys: ~ 40 | recipients: ".gpg-id""# 41 | ); 42 | } 43 | -------------------------------------------------------------------------------- /src/cli/completions.rs: -------------------------------------------------------------------------------- 1 | use clap::{App, Arg}; 2 | use std::env; 3 | 4 | lazy_static! { 5 | static ref SHELL: Result = env::var("SHELL"); 6 | } 7 | 8 | pub fn new<'a, 'b>() -> App<'a, 'b> { 9 | App::new("completions") 10 | .about("generate completions for supported shell") 11 | .arg({ 12 | let arg = Arg::with_name("shell").required(SHELL.is_err()).help( 13 | "The name of the shell, or the path to the shell as exposed by the \ 14 | $SHELL variable.", 15 | ); 16 | if let Ok(shell) = SHELL.as_ref() { 17 | arg.default_value(shell) 18 | } else { 19 | arg 20 | } 21 | }) 22 | } 23 | -------------------------------------------------------------------------------- /src/cli/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(any(feature = "vault", feature = "completions"))] 2 | use clap::App; 3 | 4 | #[cfg(feature = "completions")] 5 | mod completions; 6 | #[cfg(feature = "extract")] 7 | pub mod extract; 8 | #[cfg(feature = "process")] 9 | pub mod merge; 10 | #[cfg(feature = "substitute")] 11 | pub mod substitute; 12 | mod util; 13 | #[cfg(feature = "vault")] 14 | pub mod vault; 15 | 16 | #[cfg(any(feature = "vault", feature = "completions"))] 17 | pub struct CLI<'a, 'b> 18 | where 19 | 'a: 'b, 20 | { 21 | pub app: App<'a, 'b>, 22 | } 23 | 24 | #[cfg(feature = "vault")] 25 | impl<'a, 'b> CLI<'a, 'b> 26 | where 27 | 'a: 'b, 28 | { 29 | pub fn name() -> &'static str { 30 | "sy" 31 | } 32 | } 33 | 34 | #[cfg(all(feature = "completions", feature = "vault"))] 35 | impl<'a, 'b> CLI<'a, 'b> 36 | where 37 | 'a: 'b, 38 | { 39 | pub fn new() -> Self { 40 | use clap::AppSettings; 41 | let app: App = app_from_crate!() 42 | .setting(AppSettings::VersionlessSubcommands) 43 | .setting(AppSettings::DeriveDisplayOrder) 44 | .setting(AppSettings::SubcommandRequired) 45 | .name(CLI::name()) 46 | .after_help("Read more on https://share-secrets-safely.github.io/cli") 47 | .subcommand(vault::new()) 48 | .subcommand(substitute::new()) 49 | .subcommand(merge::new()) 50 | .subcommand(extract::new()) 51 | .subcommand(completions::new()); 52 | 53 | Self { app } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/cli/util.rs: -------------------------------------------------------------------------------- 1 | #[cfg(any(feature = "process", feature = "extract"))] 2 | pub fn output_formats() -> &'static [&'static str] { 3 | &["json", "yaml"] 4 | } 5 | -------------------------------------------------------------------------------- /src/dispatch/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "vault")] 2 | pub mod vault; 3 | -------------------------------------------------------------------------------- /src/dispatch/vault/mod.rs: -------------------------------------------------------------------------------- 1 | mod base; 2 | mod doit; 3 | 4 | pub use self::base::*; 5 | pub use self::doit::*; 6 | -------------------------------------------------------------------------------- /src/parse/completions.rs: -------------------------------------------------------------------------------- 1 | use crate::cli::CLI; 2 | use clap::App; 3 | use clap::ArgMatches; 4 | use clap::Shell; 5 | use failure::{err_msg, Error, ResultExt}; 6 | use std::io::stdout; 7 | use std::path::Path; 8 | use std::str::FromStr; 9 | 10 | pub fn generate(mut app: App, args: &ArgMatches) -> Result<(), Error> { 11 | let shell = args 12 | .value_of("shell") 13 | .ok_or_else(|| err_msg("expected 'shell' argument")) 14 | .map(|s| { 15 | Path::new(s) 16 | .file_name() 17 | .map(|f| f.to_str().expect("os-string to str conversion to work for filename")) 18 | .unwrap_or(s) 19 | }) 20 | .and_then(|s| { 21 | Shell::from_str(s) 22 | .map_err(err_msg) 23 | .with_context(|_| format!("The shell '{}' is unsupported", s)) 24 | .map_err(Into::into) 25 | })?; 26 | app.gen_completions_to(CLI::name(), shell, &mut stdout()); 27 | Ok(()) 28 | } 29 | -------------------------------------------------------------------------------- /src/parse/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "completions")] 2 | pub mod completions; 3 | #[cfg(feature = "extract")] 4 | pub mod extract; 5 | #[cfg(feature = "process")] 6 | pub mod merge; 7 | #[cfg(feature = "substitute")] 8 | pub mod substitute; 9 | mod util; 10 | #[cfg(feature = "vault")] 11 | pub mod vault; 12 | -------------------------------------------------------------------------------- /src/sy.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate clap; 3 | #[macro_use] 4 | extern crate failure; 5 | #[macro_use] 6 | extern crate lazy_static; 7 | extern crate atty; 8 | extern crate conv; 9 | extern crate glob; 10 | extern crate gpgme; 11 | extern crate itertools; 12 | extern crate sheesy_tools as tools; 13 | extern crate sheesy_vault as vault; 14 | 15 | pub mod cli; 16 | pub mod dispatch; 17 | pub mod parse; 18 | 19 | use crate::cli::CLI; 20 | use clap::ArgMatches; 21 | 22 | pub mod util; 23 | 24 | use util::*; 25 | 26 | fn main() { 27 | let cli = CLI::new(); 28 | let appc = cli.app.clone(); 29 | let matches: ArgMatches = cli.app.get_matches(); 30 | 31 | let res = match matches.subcommand() { 32 | ("completions", Some(args)) => parse::completions::generate(appc, args), 33 | ("extract", Some(args)) => parse::extract::execute(args), 34 | ("process", Some(args)) => parse::merge::execute(args), 35 | ("substitute", Some(args)) => parse::substitute::execute(args), 36 | ("vault", Some(args)) => parse::vault::execute(args), 37 | _ => panic!("Expected clap to prevent this"), 38 | }; 39 | 40 | ok_or_exit(res); 41 | } 42 | -------------------------------------------------------------------------------- /src/sye.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate clap; 3 | #[macro_use] 4 | extern crate failure; 5 | extern crate atty; 6 | extern crate glob; 7 | extern crate sheesy_tools as tools; 8 | 9 | use clap::ArgMatches; 10 | 11 | pub mod cli; 12 | pub mod parse; 13 | pub mod util; 14 | 15 | use util::ok_or_exit; 16 | 17 | fn main() { 18 | let cli = cli::extract::new() 19 | .version(crate_version!()) 20 | .author(crate_authors!()) 21 | .name("sye"); 22 | let matches: ArgMatches = cli.get_matches(); 23 | ok_or_exit(parse::extract::execute(&matches)) 24 | } 25 | -------------------------------------------------------------------------------- /src/syp.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate clap; 3 | #[macro_use] 4 | extern crate failure; 5 | extern crate atty; 6 | extern crate glob; 7 | extern crate sheesy_tools as tools; 8 | 9 | use clap::ArgMatches; 10 | 11 | pub mod cli; 12 | pub mod parse; 13 | pub mod util; 14 | 15 | use util::ok_or_exit; 16 | 17 | fn main() { 18 | let cli = cli::merge::new() 19 | .version(crate_version!()) 20 | .author(crate_authors!()) 21 | .name("syp"); 22 | let matches: ArgMatches = cli.get_matches(); 23 | ok_or_exit(parse::merge::execute(&matches)) 24 | } 25 | -------------------------------------------------------------------------------- /src/sys.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate clap; 3 | #[macro_use] 4 | extern crate failure; 5 | extern crate itertools; 6 | extern crate sheesy_tools as tools; 7 | 8 | use clap::ArgMatches; 9 | 10 | pub mod cli; 11 | pub mod parse; 12 | pub mod util; 13 | 14 | use util::ok_or_exit; 15 | 16 | fn main() { 17 | let cli = cli::substitute::new() 18 | .version(crate_version!()) 19 | .author(crate_authors!()) 20 | .name("sys"); 21 | let matches: ArgMatches = cli.get_matches(); 22 | ok_or_exit(parse::substitute::execute(&matches)) 23 | } 24 | -------------------------------------------------------------------------------- /src/syv.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate clap; 3 | #[macro_use] 4 | extern crate failure; 5 | #[macro_use] 6 | extern crate lazy_static; 7 | extern crate conv; 8 | extern crate gpgme; 9 | extern crate sheesy_vault as vault; 10 | 11 | use clap::ArgMatches; 12 | 13 | pub mod cli; 14 | pub mod dispatch; 15 | pub mod parse; 16 | pub mod util; 17 | 18 | use util::ok_or_exit; 19 | 20 | fn main() { 21 | let cli = cli::vault::new() 22 | .version(crate_version!()) 23 | .author(crate_authors!()) 24 | .name("syv"); 25 | let matches: ArgMatches = cli.get_matches(); 26 | ok_or_exit(parse::vault::execute(&matches)) 27 | } 28 | -------------------------------------------------------------------------------- /src/util.rs: -------------------------------------------------------------------------------- 1 | use failure::Error; 2 | use std::io::{stderr, stdout, Write}; 3 | use std::process; 4 | 5 | pub fn print_causes(e: E, mut w: W) 6 | where 7 | E: Into, 8 | W: Write, 9 | { 10 | let e = e.into(); 11 | let causes = e.iter_chain().collect::>(); 12 | let num_causes = causes.len(); 13 | for (index, cause) in causes.iter().enumerate() { 14 | if index == 0 { 15 | writeln!(w, "{}", cause).ok(); 16 | if num_causes > 1 { 17 | writeln!(w, "Caused by: ").ok(); 18 | } 19 | } else { 20 | writeln!(w, " {}: {}", num_causes - index, cause).ok(); 21 | } 22 | } 23 | } 24 | 25 | pub fn ok_or_exit(r: Result) -> T 26 | where 27 | E: Into, 28 | { 29 | match r { 30 | Ok(r) => r, 31 | Err(e) => { 32 | stdout().flush().ok(); 33 | write!(stderr(), "error: ").ok(); 34 | print_causes(e, stderr()); 35 | process::exit(1); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /tests/gpg-helpers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # shellcheck disable=1090 4 | source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/utilities.sh" 5 | 6 | function in-space () { 7 | VAULT="${1:?}" 8 | [[ -d $VAULT ]] && { 9 | echo 1>&2 "'$VAULT' directory is already used. Please chose a different name." 10 | return 2 11 | } 12 | { mkdir -p "$VAULT" && cd "$VAULT"; } || return 2 13 | } 14 | 15 | function trust_key () { 16 | { 17 | gpg --export-ownertrust 18 | echo "${1:?First argument is the long fingerprint of the key to trust}:6:" 19 | } | gpg --import-ownertrust &>/dev/null 20 | } 21 | 22 | function import_user () { 23 | local key=${1:?First argument must be the keyfile identifying the user} 24 | 25 | gpg --import --yes --batch "$key" &>/dev/null 26 | 27 | local fpr 28 | fpr="$(gpg --list-secret-keys --with-colons --with-fingerprint | grep fpr | head -1)" 29 | fpr=${fpr:12:40} 30 | trust_key "$fpr" 31 | } 32 | 33 | function as_user () { 34 | local key=${1:?First argument must be the keyfile identifying the user} 35 | GNUPGHOME="$(mktemp -t gnupg-home.XXXX -d)" 36 | export GNUPGHOME 37 | 38 | import_user "$key" &>/dev/null 39 | } 40 | 41 | function gpg_sandbox () { 42 | GNUPGHOME="$(mktemp -t gnupg-home.XXXX -d)" 43 | export GNUPGHOME 44 | } 45 | 46 | function sandboxed () { 47 | sandbox "gpg_sandbox" 48 | } 49 | -------------------------------------------------------------------------------- /tests/included-stateless-vault.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | snapshot="$fixture/snapshots/vault/stateless" 4 | 5 | title "'vault' subcommand" 6 | (with "a minimal vault configuration file" 7 | it "succeeds even if there is no further argument" && \ 8 | echo 'secrets: .' | expect_run $SUCCESSFULLY "$exe" vault -c - 9 | ) 10 | 11 | title "'vault init' subcommand" 12 | 13 | (with "an invalid vault path" 14 | it "fails" && \ 15 | WITH_SNAPSHOT="$snapshot/invalid-vault-path" \ 16 | expect_run $WITH_FAILURE "$exe" vault -c / init 17 | ) 18 | 19 | title "'completions' subcommand" 20 | 21 | (with "a supported shell" 22 | SHELL="$(command -v bash)" 23 | export SHELL 24 | it "generates a script executable by $SHELL" && \ 25 | expect_run $SUCCESSFULLY "$exe" completions | $SHELL 26 | ) 27 | 28 | (with "an explicit supported shell name" 29 | it "generates a valid script" && \ 30 | expect_run $SUCCESSFULLY "$exe" completions bash | bash 31 | ) 32 | 33 | (with "an unsupported shell" 34 | it "fails with a suitable error" && { 35 | WITH_SNAPSHOT="$snapshot/unsupported-shell" \ 36 | expect_run $WITH_FAILURE "$exe" completions foobar 37 | } 38 | ) 39 | -------------------------------------------------------------------------------- /tests/journeys/dockerfile-gen/00-vault-init-no-gpg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cat <' 2 | [possible values: json, yaml] 3 | 4 | 5 | USAGE: 6 | sy extract ... --output= 7 | 8 | For more information try --help -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/fail-multiple-missing-keys: -------------------------------------------------------------------------------- 1 | error: There is no value at 'foo/bar' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/fail-no-input: -------------------------------------------------------------------------------- 1 | error: Please provide structured data from standard input or from a file. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/fail-not-a-single-pointer: -------------------------------------------------------------------------------- 1 | error: The following required arguments were not provided: 2 | ... 3 | 4 | USAGE: 5 | sy extract [FLAGS] [OPTIONS] ... 6 | 7 | For more information try --help -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/fail-read-multiple-times-from-stdin: -------------------------------------------------------------------------------- 1 | error: Cannot read from stdin more than once, found 2 invocations -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/fail-single-missing-key: -------------------------------------------------------------------------------- 1 | error: There is no value at 'foo/bar' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/multiple-scalars: -------------------------------------------------------------------------------- 1 | 42 2 | a simple string with spaces 3 | 100 4 | 42 5 | some string -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/multiple-scalars-and-array-explicit-output: -------------------------------------------------------------------------------- 1 | --- 2 | - 42 3 | - a simple string with spaces 4 | - 42 5 | - some string 6 | - - 1 7 | - 2 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/multiple-scalars-and-complex: -------------------------------------------------------------------------------- 1 | [ 2 | 42, 3 | "a simple string with spaces", 4 | 42, 5 | "some string", 6 | { 7 | "a": 1, 8 | "b": [ 9 | "some string", 10 | 42 11 | ] 12 | } 13 | ] -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-boolean: -------------------------------------------------------------------------------- 1 | true -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-boolean-as-json: -------------------------------------------------------------------------------- 1 | [ 2 | true 3 | ] -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-null: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/extract/single-null -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-null-as-yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - ~ -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-scalar: -------------------------------------------------------------------------------- 1 | 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-scalar-as-json: -------------------------------------------------------------------------------- 1 | [ 2 | 42 3 | ] -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/extract/single-string: -------------------------------------------------------------------------------- 1 | another string with some spaces and exclamation! -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/getting-started/syv-output-on-alpine: -------------------------------------------------------------------------------- 1 | Downloading https://github.com/share-secrets-safely/cli/releases/download/4.0.10/sy-cli-Linux-x86_64.tar.gz... 2 | { 3 | "a": 42 4 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/allow-overwrite-file-from-stdin-with-one-conflicting-file-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "answer": 43 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/allow-overwrite-multi-doc-yaml-with-conflict-from-file-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": 10, 3 | "b": 2, 4 | "c": 3 5 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/allow-overwrite-multi-doc-yaml-with-conflict-from-stdin-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": 10, 3 | "b": 2, 4 | "c": 3 5 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/allow-overwrite-no-stdin-with-two-conflicting-files-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "answer": 43 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/allow-overwrite-no-stdin-with-two-conflicting-files-to-stdout-overwrite-persists: -------------------------------------------------------------------------------- 1 | { 2 | "answer": 42 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/empty-environment-filtered-at-non-existing-key-a: -------------------------------------------------------------------------------- 1 | { 2 | "a": {} 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/empty-stdin-input-from-file-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "from-file": {} 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/empty-stdin-input-from-key-value-pairs-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": 42, 3 | "b": true, 4 | "c": "foo" 5 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/environment-filtered-at-new-key-a: -------------------------------------------------------------------------------- 1 | --- 2 | TEST_MARKER_COMPLEX: 3 | a: 1 4 | b: 2 5 | c: 6 | - 1 7 | - 2 8 | - 3 9 | d: val 10 | TEST_MARKER_STRING: value 11 | a: 12 | TEST_MARKER_COMPLEX: 13 | a: 1 14 | b: 2 15 | c: 16 | - 1 17 | - 2 18 | - 3 19 | d: val 20 | TEST_MARKER_STRING: value -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/environment-filtered-at-new-nested-key-with-array: -------------------------------------------------------------------------------- 1 | --- 2 | - ~ 3 | - ~ 4 | - ~ 5 | - a: 6 | - b: 7 | TEST_MARKER_COMPLEX: 8 | a: 1 9 | b: 2 10 | c: 11 | - 1 12 | - 2 13 | - 3 14 | d: val 15 | TEST_MARKER_STRING: value -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/environment-filtered-at-new-nested-key-with-object: -------------------------------------------------------------------------------- 1 | --- 2 | TEST_MARKER_COMPLEX: 3 | a: 1 4 | b: 2 5 | c: 6 | - 1 7 | - 2 8 | - 3 9 | d: val 10 | TEST_MARKER_STRING: value 11 | a: 12 | - ~ 13 | - ~ 14 | - b: 15 | - TEST_MARKER_COMPLEX: 16 | a: 1 17 | b: 2 18 | c: 19 | - 1 20 | - 2 21 | - 3 22 | d: val 23 | TEST_MARKER_STRING: value -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/environment-filtered-at-root: -------------------------------------------------------------------------------- 1 | --- 2 | TEST_MARKER_BOOL_FALSE: false 3 | TEST_MARKER_BOOL_TRUE: true 4 | TEST_MARKER_COMPLEX: 5 | a: 1 6 | b: 2 7 | c: 8 | - 1 9 | - 2 10 | - 3 11 | d: val 12 | TEST_MARKER_FLOAT: 42.5 13 | TEST_MARKER_FLOAT_NEGATIVE: -42.5 14 | TEST_MARKER_INT: 42 15 | TEST_MARKER_INT_NEGATIVE: -42 16 | TEST_MARKER_INVALID_JSON: "{'a:}" 17 | TEST_MARKER_STRING: value -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/environment-filtered-no-match-at-root: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/environment-unfiltered-at-root: -------------------------------------------------------------------------------- 1 | "TEST_MARKER_VARIABLE": "value", -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-environment-filtered-at-existing-key-a-which-is-no-map: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | a -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-environment-invalid-filter: -------------------------------------------------------------------------------- 1 | error: Invalid value for '--environment=...': Pattern syntax error near position 1: invalid range pattern -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-invalid-dotted-pointer: -------------------------------------------------------------------------------- 1 | error: No value at pointer 'a.b.c' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-invalid-json-stdin: -------------------------------------------------------------------------------- 1 | error: Could not deserialize data, tried JSON and YAML. The data might be malformed 2 | Caused by: 3 | 6: rust-yaml deserialization failed 4 | 5: while scanning a quoted scalar, found unexpected end of stream at line 1 column 2 5 | 4: JSON deserialization failed 6 | 3: control character (\u0000-\u001F) found while parsing a string at line 2 column 0 7 | 2: YAML deserialization failed 8 | 1: while scanning a quoted scalar, found unexpected end of stream at line 1 column 2 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-invalid-output-format: -------------------------------------------------------------------------------- 1 | error: 'foobar' isn't a valid value for '--output=' 2 | [possible values: json, yaml] 3 | 4 | 5 | USAGE: 6 | sy process --environment=... --output= 7 | 8 | For more information try --help -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-invalid-yaml-stdin: -------------------------------------------------------------------------------- 1 | error: Could not deserialize data, tried JSON and YAML. The data might be malformed 2 | Caused by: 3 | 6: rust-yaml deserialization failed 4 | 5: block sequence entries are not allowed in this context at line 1 column 4 5 | 4: JSON deserialization failed 6 | 3: expected value at line 1 column 1 7 | 2: YAML deserialization failed 8 | 1: block sequence entries are not allowed in this context at line 1 column 4 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-multi-doc-yaml-with-conflict-from-file-to-stdout: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | a -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-multi-doc-yaml-with-conflict-from-stdin-to-stdout: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | a -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-no-data-from-stdin-and-no-file-specified: -------------------------------------------------------------------------------- 1 | error: Please provide structured data from standard input or from a file. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-no-stdin-with-explicit-stdin: -------------------------------------------------------------------------------- 1 | error: Cannot specify standard input explicitly with '-' and prohibit reading stdin with --no-stdin. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-no-stdin-with-two-conflicting-files-to-stdout: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | answer -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-select-non-existing-object: -------------------------------------------------------------------------------- 1 | error: No value at pointer 'foo' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-set-various-values-with-conflict: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | a.b -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-use-of-stdin-more-than-once: -------------------------------------------------------------------------------- 1 | error: Cannot read from stdin more than once, found 2 invocations -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-yaml-conflicting-array-value-stdin-complex-yaml-file-to-stdout: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | a_sequence.0 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-yaml-conflicting-nested-scalar-stdin-complex-yaml-file-to-stdout: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | a_nested_map.another_nested_map.hello -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/fail-yaml-stdin-with-yaml-file-conflicting-scalar-to-stdout: -------------------------------------------------------------------------------- 1 | error: The merge failed due to conflicts 2 | Caused by: 3 | 1: Refusing to merge due to the following clashing keys: 4 | answer -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/json-stdin-at-before-path-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": { 3 | "b": { 4 | "from-stdin": 42 5 | } 6 | }, 7 | "answer": 42 8 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/json-stdin-at-before-path-with-explicit-stdin-marker-and-various-at-flags-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": { 3 | "b": { 4 | "answer": 42 5 | } 6 | }, 7 | "answer": 42, 8 | "c": { 9 | "answer": 42 10 | }, 11 | "foo": "bar" 12 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/json-stdin-at-before-path-with-explicit-stdin-marker-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": { 3 | "b": { 4 | "answer": 42 5 | } 6 | }, 7 | "from-stdin": 42 8 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/multi-document-yaml-stdin-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "a": 1, 3 | "b": 2, 4 | "c": 3, 5 | "d": 4, 6 | "s": 10, 7 | "t": 20, 8 | "u": 30, 9 | "v": 40 10 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/no-stdin-ignores-input-from-stdin: -------------------------------------------------------------------------------- 1 | { 2 | "a": 42 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/select-nested-scalar-value-array: -------------------------------------------------------------------------------- 1 | [ 2 | 1, 3 | 2, 4 | 3 5 | ] -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/select-nested-scalar-value-array-on-merged-value: -------------------------------------------------------------------------------- 1 | 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/select-nested-scalar-value-array-on-merged-value-with-move: -------------------------------------------------------------------------------- 1 | { 2 | "a": { 3 | "b": 42 4 | } 5 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/select-single-scalar-value: -------------------------------------------------------------------------------- 1 | 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/select-single-scalar-value-with-move: -------------------------------------------------------------------------------- 1 | { 2 | "c": { 3 | "d": { 4 | "e": 42 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/set-various-values-with-conflict-and-overwrite: -------------------------------------------------------------------------------- 1 | --- 2 | a: 3 | b: 43 4 | c: 3 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/set-various-values-without-conflict: -------------------------------------------------------------------------------- 1 | --- 2 | a: 42 3 | b: true 4 | c: false 5 | d: 42 6 | e: value 7 | f: 13.234 8 | x: 9 | - s: 10 | t: 11 | a: 12 | - 1 13 | - 2 14 | - 3 15 | z: "" -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/unconsumed-at-flag-applies-to-final-value: -------------------------------------------------------------------------------- 1 | { 2 | "c": { 3 | "answer": 42 4 | } 5 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/yaml-stdin-to-stdout-as-yaml: -------------------------------------------------------------------------------- 1 | --- 2 | answer: 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/yaml-stdin-to-stdout-output-format-unspecified: -------------------------------------------------------------------------------- 1 | { 2 | "answer": 42 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/yaml-stdin-with-at-to-stdout-as-yaml: -------------------------------------------------------------------------------- 1 | --- 2 | a: 3 | b: 4 | answer: 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/merge/yaml-stdin-with-yaml-file-same-scalar-value-to-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "answer": 42 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-json-data-partial-input-success: -------------------------------------------------------------------------------- 1 | from source: from-global 2 | 3 | included: from global: from-global 4 | as argument: argument from caller -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-json-data-validated-fix-with-replacements-stdout: -------------------------------------------------------------------------------- 1 | { 2 | "password": "$geheim\"niss" 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-json-single-template-stdout: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-partial-0-output-stdout: -------------------------------------------------------------------------------- 1 | 2 | example 0 3 | 4 |

Derived from base0.hbs

5 |

Rendered in partial, parent is base0

6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-partial-1-output-stdout: -------------------------------------------------------------------------------- 1 | 2 | other example 3 | 4 |

Derived from base1.hbs

5 |

Rendered in partial, parent is base1

6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-stdout: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 |
: 42 3 | 4 | : What is the answer to everything? 5 | : 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-stdout-explicit-separator: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | <-> 4 | : What is the answer to everything? 5 | : 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-again: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-again -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-again-more: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-again-more -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-again-more-output: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | 4 | : What is the answer to everything? 5 | : 42 6 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-again-output: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-explicit-separator: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-explicit-separator -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-explicit-separator-output: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | --- 4 | : What is the answer to everything? 5 | : 42 6 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-more: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-more -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-more-output: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | 4 | : What is the answer to everything? 5 | : 42 6 | 7 | : What is the answer to everything? 8 | : 42 9 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-multi-template-to-same-file-output: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | 4 | : What is the answer to everything? 5 | : 42 6 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-single-relative-template-stdout: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-single-template-file-non-existing-directory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-single-template-file-non-existing-directory -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-single-template-output-file-with-nonexisting-directory/some/sub/directory/output: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/data-stdin-yaml-single-template-stdout: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 | : 42 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-data-stdin-and-no-specs: -------------------------------------------------------------------------------- 1 | error: No spec provided, neither from standard input, nor from file -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-data-stdin-json-data-validated-stdout: -------------------------------------------------------------------------------- 1 | error: Validation of template output at 'stream' failed. It's neither valid YAML, nor JSON 2 | Caused by: 3 | 1: while parsing a flow mapping, did not find expected ',' or '}' at line 2 column 21 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-data-stdin-template-misses-key: -------------------------------------------------------------------------------- 1 | error: Failed to render template from template at 'the-answer' 2 | Caused by: 3 | 1: liquid: Unknown variable 4 | with: 5 | requested variable=the-answer 6 | available variables=hi -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-data-stdin-template-stdin: -------------------------------------------------------------------------------- 1 | error: Stdin is a TTY. Cannot substitute a template without any data. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-invalid-data-format: -------------------------------------------------------------------------------- 1 | error: Could not deserialize data, tried JSON and YAML 2 | Caused by: 3 | 4: JSON deserialization failed 4 | 3: expected value at line 1 column 1 5 | 2: YAML deserialization failed 6 | 1: while parsing node, found unknown anchor at line 1 column 4 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-invalid-data-format-multi-document-yaml: -------------------------------------------------------------------------------- 1 | error: Could not deserialize data, tried JSON and YAML 2 | Caused by: 3 | 4: JSON deserialization failed 4 | 3: invalid number at line 1 column 2 5 | 2: YAML deserialization failed 6 | 1: deserializing from YAML containing more than one document is not supported -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-multiple-templates-from-stdin: -------------------------------------------------------------------------------- 1 | error: Cannot read more than one template spec from standard input -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-no-data-and-no-specs: -------------------------------------------------------------------------------- 1 | error: Stdin is a TTY. Cannot substitute a template without any data. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-not-enough-replacements: -------------------------------------------------------------------------------- 1 | error: Please provide --replace-value arguments in pairs of two. First the value to find, second the one to replace it with -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-source-is-destination-single-spec: -------------------------------------------------------------------------------- 1 | error: Refusing to overwrite input file at 'tests/journeys/fixtures/substitute/the-answer.hbs' with output -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/fail-validation-data-stdin-json-template: -------------------------------------------------------------------------------- 1 | error: Validation of template output at 'stream' failed. It's neither valid YAML, nor JSON 2 | Caused by: 3 | 1: while parsing a flow mapping, did not find expected ',' or '}' at line 2 column 20 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/handlebars/data-stdin-partial-0-output-stdout: -------------------------------------------------------------------------------- 1 | 2 | example 0 3 | 4 |

Derived from base0.hbs

5 |

Rendered in partial, parent is base0

6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/handlebars/data-stdin-partial-1-output-stdout: -------------------------------------------------------------------------------- 1 | 2 | other example 3 | 4 |

Derived from base1.hbs

5 |

Rendered in partial, parent is base1

6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/liquid/filter-base64: -------------------------------------------------------------------------------- 1 | aGVsbG8= -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/template-stdin-hbs-output-stdout: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/template-stdin-hbs-output-stdout-to-file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/share-secrets-safely/cli/4bee79baf0440dddb663227e7e8bf160e7df9016/tests/journeys/fixtures/snapshots/substitute/template-stdin-hbs-output-stdout-to-file -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/template-stdin-hbs-output-stdout-to-file-output: -------------------------------------------------------------------------------- 1 | hello world 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/substitute/validation-success-data-stdin-json-template: -------------------------------------------------------------------------------- 1 | { 2 | "password": "geheim" 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/always-encrypt/add-success-as-unknown-user: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added 'new-secret'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/always-encrypt/list-with-relative-secrets-dir: -------------------------------------------------------------------------------- 1 | syv://secrets 2 | secret -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/always-encrypt/precondition-vault-config-after-init: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: true 4 | trust_model: always 5 | secrets: "./secrets" 6 | gpg_keys: "./etc/keys" 7 | recipients: "./etc/recipients" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/always-encrypt/show-fail-for-new-secret-as-unknown-user: -------------------------------------------------------------------------------- 1 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 2 | Caused by: 3 | 2: The content was not encrypted for you. 4 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/always-encrypt/show-failure-as-unknown-user: -------------------------------------------------------------------------------- 1 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 2 | Caused by: 3 | 2: The content was not encrypted for you. 4 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/add-from-stdin-no-tty-show: -------------------------------------------------------------------------------- 1 | vault add from editor -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/edit-changed-file: -------------------------------------------------------------------------------- 1 | ho -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/edit-new-resource-with-changed-secrets-dir: -------------------------------------------------------------------------------- 1 | Edited 'new-resource'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/known-resource-edit-editor-not-in-path: -------------------------------------------------------------------------------- 1 | error: Failed to start editor program at 'foo'. 2 | Caused by: 3 | 1: No such file or directory (os error 2) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/ls-with-single-resource: -------------------------------------------------------------------------------- 1 | syv://. 2 | from-stdin -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-add-from-stdin: -------------------------------------------------------------------------------- 1 | Added 'from-stdin'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-add-from-stdin-no-tty: -------------------------------------------------------------------------------- 1 | Added 'from-stdin-no-tty'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-add-overwrite-protection: -------------------------------------------------------------------------------- 1 | error: Refusing to overwrite existing file at './from-stdin.gpg' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-edit-encrypt-failure: -------------------------------------------------------------------------------- 1 | error: Aborted edit operation as you cannot encrypt resources. 2 | Caused by: 3 | 1: At least one recipient you try to encrypt for is untrusted. Consider (locally) signing the key with `gpg --sign-key ` or ultimately trusting them. 4 | Could not encrypt for recipient D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) with error: Unusable public key (gpg error 53) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-edit-encrypt-failure-no-try-encrypt: -------------------------------------------------------------------------------- 1 | error: Failed to start editor program at 'does-not-matter'. 2 | Caused by: 3 | 1: No such file or directory (os error 2) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-remove-multiple-existing: -------------------------------------------------------------------------------- 1 | Removed file at './a.ext.gpg' 2 | Removed file at './b.gpg' 3 | Removed file at './c.gpg' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-remove-multiple-existing-after: -------------------------------------------------------------------------------- 1 | syv://. 2 | from-stdin-no-tty 3 | from-stdin 4 | new-edited-file -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-remove-non-existing: -------------------------------------------------------------------------------- 1 | Removed file at './existing.gpg' 2 | error: No file present at './non-existing.gpg' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/resource-show: -------------------------------------------------------------------------------- 1 | hi -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/show-new-resource-with-changed-secrets-dir: -------------------------------------------------------------------------------- 1 | vault add from editor -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/unknown-resource-edit: -------------------------------------------------------------------------------- 1 | error: Failed to decrypt file at 'some-unknown-resource'. 2 | Caused by: 3 | 2: Could not open input file at './some-unknown-resource.gpg' for reading. Tried './some-unknown-resource' as well. 4 | 1: No such file or directory (os error 2) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/edit/unknown-resource-show: -------------------------------------------------------------------------------- 1 | error: Could not open input file at './some-unknown-resource.gpg' for reading. Tried './some-unknown-resource' as well. 2 | Caused by: 3 | 1: No such file or directory (os error 2) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-no-gpg-installed/add-empty-recipients: -------------------------------------------------------------------------------- 1 | error: No recipients found in recipients file at '.gpg-id'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-no-gpg-installed/add-no-gpg: -------------------------------------------------------------------------------- 1 | error: The GNU Privacy Guard (GPG) is not available on your system. 2 | Please install it and try again. 3 | See https://www.gnupg.org for more information. 4 | Caused by: 5 | 2: Could not iterate keys for given recipients 6 | 1: Unsupported protocol (gpg error 121) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-no-gpg-installed/init-no-gpg: -------------------------------------------------------------------------------- 1 | error: The GNU Privacy Guard (GPG) is not available on your system. 2 | Please install it and try again. 3 | See https://www.gnupg.org for more information. 4 | Caused by: 5 | 1: Unsupported protocol (gpg error 121) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-no-gpg-installed/show-no-gpg: -------------------------------------------------------------------------------- 1 | error: The GNU Privacy Guard (GPG) is not available on your system. 2 | Please install it and try again. 3 | See https://www.gnupg.org for more information. 4 | Caused by: 5 | 2: Failed to decrypt data. 6 | 1: Unsupported protocol (gpg error 121) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-with-gpg1/gpg1-vault-recipient-add-untrusted-user-with-fingerprint: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | error: The GNU Privacy Guard (GPG) does not supported the attempted operation. 3 | GPG v2 is known to work, and you can install it here: 4 | https://www.gnupg.org for more information. 5 | Caused by: 6 | 2: Could not sign key of recipient 7435ACDC03D55429C41637C4DB9831D842C18D28 with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 7 | 1: Not supported (gpg error 60) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-with-gpg1/gpg1-vault-recipient-add-untrusted-user-with-fingerprint-metadata/keys/7435ACDC03D55429C41637C4DB9831D842C18D28: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWj96MgEEALuEFf+3Xu1f69nludvCDZSb1sT6hPQqfib73tTBL/jxc9AjiT1b 4 | iGug1aQR6LWinc64AHUqfFja/JpeOrtKSoxhswrh+k36IgEs/7h8VZW3WIct5XsN 5 | KlHVi/i9iWx6aIScQxoNYH0DEYX/wcWMCfxXpZvNuQx8tRRqO5M9NgGXABEBAAG0 6 | FnVzZXIgYiA8YkBleGFtcGxlLmNvbT6IzgQTAQgAOBYhBHQ1rNwD1VQpxBY3xNuY 7 | MdhCwY0oBQJaP3oyAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJENuYMdhC 8 | wY0oFSID/2xeUJJOdATwm0IDxw/+PJxtnKcBI1JUkOKOtwwYtva44pFz7TkxMdo1 9 | t8wa5BWVCx+J7jjFtW1BV2vTm29it8kJpBTQ8axhdFh63qhgE95qqfKlNrsIxcwV 10 | 94uWORUrzjH9aQgwfdfGhPD5O1BjariFHbZlnz7YxVbZBjmcvcqOiLMEEAEIAB0W 11 | IQQeERThGzYrRrU+GrrvFwR6tIi9ggUCWj+b/QAKCRDvFwR6tIi9grsQA/9wZQke 12 | X8eR3cD0dllJ8QiiBeh1Z1qIoeZCdak9FTA89ZulUVT4tKAdS+Ubh1e5RfhmGTX7 13 | j/Uex0Dm3Xm/jrYjcK+EmC36eiqyXxlUddOqZ6bJoiLTcIJdoRA9OWfkVrvTm7IT 14 | DHNiQJkvxJCSmN7cW9oAX0Q3EHQfCdtzxGh6FLiNBFo/ejIBBACl8QZxeD8rtOoG 15 | jb+trAB5XAggcmoF8JgtbtW1jvKuk6GFw8CIUutRFzWVeozPPMSHszUs54szWtCb 16 | BHPKsUxgnGLXiV/Mu//janhvmtNtmAcTheB8EHTv/Mjllp+qipq5uIarKc0nIHEe 17 | 4gRuCnr2gYT1wDto7jepQ2yom39WowARAQABiLYEGAEIACAWIQR0NazcA9VUKcQW 18 | N8TbmDHYQsGNKAUCWj96MgIbDAAKCRDbmDHYQsGNKCTZBACotJ1ldF+aXJUp2x63 19 | okR2ch1NqEk0ESmvRGRnBZq5M4++7izFZfq9ZgwQaAk0pCrtd7R4x3uQl7nK/hce 20 | KaTF5LlJ+vGzFDmeIbpRDx0OYfAUiGDqHFCZ+NyUUgIg1qfX8gEM//9cMwnMmLBA 21 | l5jUUC0yoCbsaZgIPDTb7A2xmA== 22 | =g/LT 23 | -----END PGP PUBLIC KEY BLOCK----- 24 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-with-gpg1/gpg1-vault-recipient-add-untrusted-user-with-fingerprint-metadata/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init-with-gpg1/gpg1-vault-recipient-add-untrusted-user-with-fingerprint-metadata/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/add-with-subdirectory: -------------------------------------------------------------------------------- 1 | Created intermediate directory at 'vault/secrets/partition/subdir' 2 | Added 'partition/subdir/secret'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/add-without-vault-description: -------------------------------------------------------------------------------- 1 | Added 'resource'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/edit-with-absolute-vault-directory: -------------------------------------------------------------------------------- 1 | Edited 'new-resource'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-change-secrets-location-folder-structure/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-change-secrets-location-folder-structure/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-explicit-recipients-path/.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-explicit-recipients-path/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-explicit-recipients-path/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "./secrets" 6 | gpg_keys: ".gpg-keys" 7 | recipients: "./recipients" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-failure-no-secret-key: -------------------------------------------------------------------------------- 1 | error: No existing GPG key found for which you have a secret key. Please create one with 'gpg --gen-key' and try again. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-first-partition-flag/.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-first-partition-flag/sec/.gpg-id: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-first-partition-flag/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: sec 6 | gpg_keys: ".gpg-keys" 7 | recipients: sec/.gpg-id 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-first-partition-invalid-secrets-dir-dot: -------------------------------------------------------------------------------- 1 | error: If --first-partition is present, --secrets-dir must not be set to '.' or left unset -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-first-partition-no-secrets-dir: -------------------------------------------------------------------------------- 1 | error: If --first-partition is present, --secrets-dir must not be set to '.' or left unset -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-multiple-users/.gpg-id: -------------------------------------------------------------------------------- 1 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-multiple-users/.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-multiple-users/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "." 6 | gpg_keys: ".gpg-keys" 7 | recipients: "./.gpg-id" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-relative-named-recipients/.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-relative-named-recipients/secrets/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-relative-named-recipients/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "./secrets" 6 | gpg_keys: ".gpg-keys" 7 | recipients: "./secrets/recipients" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-relative-unnamed-recipients/.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-relative-unnamed-recipients/secrets/.gpg-id: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-relative-unnamed-recipients/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: ".gpg-keys" 7 | recipients: secrets/.gpg-id 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user-absolute-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user-absolute-directory/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user-absolute-directory/vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: custom-name 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "." 6 | gpg_keys: keys 7 | recipients: "./recipients" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user-with-multiple-signatures/.gpg-id: -------------------------------------------------------------------------------- 1 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user-with-multiple-signatures/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: vault-name 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "." 6 | gpg_keys: ".gpg-keys" 7 | recipients: "./.gpg-id" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user/.gpg-id: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user/.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-single-user/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "." 6 | gpg_keys: ".gpg-keys" 7 | recipients: "./.gpg-id" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-will-not-overwrite-vault-config: -------------------------------------------------------------------------------- 1 | error: Cannot overwrite vault configuration file as it already exists at './sy-vault.yml' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-will-not-write-into-existing-nonempty-directory: -------------------------------------------------------------------------------- 1 | error: Cannot create gpg keys directory 2 | Caused by: 3 | 1: Refusing to write into non-empty directory at '.gpg-keys' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-will-overwrite-recipients-file: -------------------------------------------------------------------------------- 1 | error: Cannot write recipients into existing file at '.gpg-id' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-with-at-argument: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to 'vault/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | vault initialized at 'vault/vault.yml' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-with-key-specified-explicitly: -------------------------------------------------------------------------------- 1 | Exported public key for user user c to '.gpg-keys/905E53FE2FC0A500100AB80B056F92A52DF04D4E' 2 | vault initialized at './sy-vault.yml' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-with-multiple-specified-keys: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to '.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Exported public key for user user c to '.gpg-keys/905E53FE2FC0A500100AB80B056F92A52DF04D4E' 3 | vault initialized at './sy-vault.yml' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/init-with-multiple-viable-keys: -------------------------------------------------------------------------------- 1 | error: Found 2 viable keys for key-ids (Tester (for testing only) , user c ), which is ambiguous. Please specify one with the --gpg-key-id argument. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/list-changed-secrets-location: -------------------------------------------------------------------------------- 1 | syv://customized@vault/secrets 2 | secret -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/list-with-name: -------------------------------------------------------------------------------- 1 | syv://vault-name@. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/resource-add-relative-dir-failure: -------------------------------------------------------------------------------- 1 | error: Relative parent directories in source '../content' need the destination set explicitly. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/resource-add-relative-dir-success: -------------------------------------------------------------------------------- 1 | Added 'content'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/init/successful-init: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to '.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | vault initialized at './sy-vault.yml' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-ambiguous-private-keys: -------------------------------------------------------------------------------- 1 | error: Found 2 viable keys for key-ids (Tester (for testing only) , user b ), which is ambiguous. Please specify one with the --gpg-key-id argument. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-as-another-user-no-recipient: -------------------------------------------------------------------------------- 1 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Added partition 'mine' with resources at 'private-partition' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-as-another-user-no-recipient-directory/etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWj96MgEEALuEFf+3Xu1f69nludvCDZSb1sT6hPQqfib73tTBL/jxc9AjiT1b 4 | iGug1aQR6LWinc64AHUqfFja/JpeOrtKSoxhswrh+k36IgEs/7h8VZW3WIct5XsN 5 | KlHVi/i9iWx6aIScQxoNYH0DEYX/wcWMCfxXpZvNuQx8tRRqO5M9NgGXABEBAAG0 6 | FnVzZXIgYiA8YkBleGFtcGxlLmNvbT6IzgQTAQgAOBYhBHQ1rNwD1VQpxBY3xNuY 7 | MdhCwY0oBQJaP3oyAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJENuYMdhC 8 | wY0oFSID/2xeUJJOdATwm0IDxw/+PJxtnKcBI1JUkOKOtwwYtva44pFz7TkxMdo1 9 | t8wa5BWVCx+J7jjFtW1BV2vTm29it8kJpBTQ8axhdFh63qhgE95qqfKlNrsIxcwV 10 | 94uWORUrzjH9aQgwfdfGhPD5O1BjariFHbZlnz7YxVbZBjmcvcqOiLMEEAEIAB0W 11 | IQQeERThGzYrRrU+GrrvFwR6tIi9ggUCWj+b/QAKCRDvFwR6tIi9grsQA/9wZQke 12 | X8eR3cD0dllJ8QiiBeh1Z1qIoeZCdak9FTA89ZulUVT4tKAdS+Ubh1e5RfhmGTX7 13 | j/Uex0Dm3Xm/jrYjcK+EmC36eiqyXxlUddOqZ6bJoiLTcIJdoRA9OWfkVrvTm7IT 14 | DHNiQJkvxJCSmN7cW9oAX0Q3EHQfCdtzxGh6FLiNBFo/ejIBBACl8QZxeD8rtOoG 15 | jb+trAB5XAggcmoF8JgtbtW1jvKuk6GFw8CIUutRFzWVeozPPMSHszUs54szWtCb 16 | BHPKsUxgnGLXiV/Mu//janhvmtNtmAcTheB8EHTv/Mjllp+qipq5uIarKc0nIHEe 17 | 4gRuCnr2gYT1wDto7jepQ2yom39WowARAQABiLYEGAEIACAWIQR0NazcA9VUKcQW 18 | N8TbmDHYQsGNKAUCWj96MgIbDAAKCRDbmDHYQsGNKCTZBACotJ1ldF+aXJUp2x63 19 | okR2ch1NqEk0ESmvRGRnBZq5M4++7izFZfq9ZgwQaAk0pCrtd7R4x3uQl7nK/hce 20 | KaTF5LlJ+vGzFDmeIbpRDx0OYfAUiGDqHFCZ+NyUUgIg1qfX8gEM//9cMwnMmLBA 21 | l5jUUC0yoCbsaZgIPDTb7A2xmA== 22 | =g/LT 23 | -----END PGP PUBLIC KEY BLOCK----- 24 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-as-another-user-no-recipient-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-as-another-user-no-recipient-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-as-another-user-no-recipient-directory/private-partition/recipients: -------------------------------------------------------------------------------- 1 | 7435ACDC03D55429C41637C4DB9831D842C18D28 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-as-another-user-no-recipient-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: mine 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: private-partition 13 | gpg_keys: ~ 14 | recipients: private-partition/recipients 15 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-failure: -------------------------------------------------------------------------------- 1 | error: Partition at './two' is contained in another partitions resources directory at './.' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-failure-duplicate-recipients: -------------------------------------------------------------------------------- 1 | error: Recipients path '.gpg-id' is already used, but must be unique across all partitions -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-directory/subdir/second/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-directory/subdir/third/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | --- 16 | name: second-partition 17 | auto_import: ~ 18 | trust_model: ~ 19 | secrets: "./subdir/second" 20 | gpg_keys: ~ 21 | recipients: "./subdir/second/recipients" 22 | --- 23 | name: third 24 | auto_import: ~ 25 | trust_model: ~ 26 | secrets: subdir/third 27 | gpg_keys: ~ 28 | recipients: subdir/third/recipients 29 | --- 30 | name: second-partition 31 | auto_import: ~ 32 | trust_model: ~ 33 | secrets: /tmp/some-empty-dir 34 | gpg_keys: ~ 35 | recipients: /tmp/some-empty-dir/recipients 36 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-fourth-named-absolute-path: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added partition 'second-partition' with resources at '/tmp/some-empty-dir' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-multiple-non-existing-user-ids: -------------------------------------------------------------------------------- 1 | error: No secret key matched any of the given user ids: 'foo', 'bar' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-multiple-private-keys: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added unnamed partition with resources at 'with-multiple-keys' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-qualified-resource: -------------------------------------------------------------------------------- 1 | Added 'private-partition/hello'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-second-named: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added partition 'second-partition' with resources at './subdir/second' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-second-named-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-second-named-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-second-named-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-second-named-directory/subdir/second/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-second-named-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | --- 16 | name: second-partition 17 | auto_import: ~ 18 | trust_model: ~ 19 | secrets: "./subdir/second" 20 | gpg_keys: ~ 21 | recipients: "./subdir/second/recipients" 22 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-named-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-named-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-named-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-named-directory/subdir/second/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-named-directory/subdir/third/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-named-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | --- 16 | name: second-partition 17 | auto_import: ~ 18 | trust_model: ~ 19 | secrets: "./subdir/second" 20 | gpg_keys: ~ 21 | recipients: "./subdir/second/recipients" 22 | --- 23 | name: third 24 | auto_import: ~ 25 | trust_model: ~ 26 | secrets: subdir/third 27 | gpg_keys: ~ 28 | recipients: subdir/third/recipients 29 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-third-unnamed-relative-path: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added unnamed partition with resources at 'subdir/third' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-to-existing-empty-directory: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to '.gpg-keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added unnamed partition with resources at 'partition2' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-to-existing-non-empty-directory: -------------------------------------------------------------------------------- 1 | error: Cannot create secrets directory 2 | Caused by: 3 | 1: Refusing to write into non-empty directory at 'partition' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-add-unqualified-resource: -------------------------------------------------------------------------------- 1 | error: Path 'hello' could not be associated with any partition. Prefix it with the partition resource directory. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-first-unnamed: -------------------------------------------------------------------------------- 1 | Exported public key for user Tester (for testing only) to 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added unnamed partition with resources at 'first' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-first-unnamed-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-first-unnamed-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-first-unnamed-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-first-unnamed-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-recipients-list-fail-missing-key: -------------------------------------------------------------------------------- 1 | syv://secrets 2 | error: Didn't find the key for 1 recipient(s) in the gpg database. This might mean it wasn't imported yet from the 'etc/keys' directory. 3 | The following recipient(s) could not be found in the gpg key database: 4 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Import key-file using 'gpg --import 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332') -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-recipients-list-fail-missing-key-as-prime-recipient: -------------------------------------------------------------------------------- 1 | syv://secrets 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) 3 | syv://mine@private-partition 4 | error: Didn't find the key for 1 recipient(s) in the gpg database. 5 | The following recipient(s) could not be found in the gpg key database: 6 | 7435ACDC03D55429C41637C4DB9831D842C18D28 (No GPG keys directory) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-by-index-failure-cannot-remove-leader: -------------------------------------------------------------------------------- 1 | error: Refusing to remove the leading partition at index 0 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-by-index-failure-does-not-exist: -------------------------------------------------------------------------------- 1 | error: Could not find partition with index 99 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-by-name-failure-does-not-exist: -------------------------------------------------------------------------------- 1 | error: No partition matched the given selector 'some-invalid-name' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-by-path-failure-does-not-exist: -------------------------------------------------------------------------------- 1 | error: No partition matched the given selector '../some-path-which-is-not-there' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-failure-ambiguous-name: -------------------------------------------------------------------------------- 1 | error: Multiple partitions matched the ambiguous selector 'same' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index: -------------------------------------------------------------------------------- 1 | Removed partition matching selector '4' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index-directory/subdir/second/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index-directory/subdir/third/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-fourth-by-index-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | --- 16 | name: second-partition 17 | auto_import: ~ 18 | trust_model: ~ 19 | secrets: "./subdir/second" 20 | gpg_keys: ~ 21 | recipients: "./subdir/second/recipients" 22 | --- 23 | name: third 24 | auto_import: ~ 25 | trust_model: ~ 26 | secrets: subdir/third 27 | gpg_keys: ~ 28 | recipients: subdir/third/recipients 29 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-qualified-resource: -------------------------------------------------------------------------------- 1 | Removed file at 'private-partition/hello.gpg' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir: -------------------------------------------------------------------------------- 1 | Removed partition matching selector './subdir/second' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir-directory/subdir/second/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir-directory/subdir/third/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-second-by-resource-dir-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-success-similarly-named-leader: -------------------------------------------------------------------------------- 1 | Removed partition matching selector 'same' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-success-similarly-named-leader-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: same 3 | auto_import: ~ 4 | trust_model: ~ 5 | secrets: one 6 | gpg_keys: ".gpg-keys" 7 | recipients: bar 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name: -------------------------------------------------------------------------------- 1 | Removed partition matching selector 'third' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name-directory/etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name-directory/etc/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name-directory/first/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name-directory/subdir/second/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name-directory/subdir/third/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-third-by-name-directory/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: secrets 6 | gpg_keys: etc/keys 7 | recipients: etc/recipients 8 | --- 9 | name: first 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: first 13 | gpg_keys: ~ 14 | recipients: first/recipients 15 | --- 16 | name: second-partition 17 | auto_import: ~ 18 | trust_model: ~ 19 | secrets: "./subdir/second" 20 | gpg_keys: ~ 21 | recipients: "./subdir/second/recipients" 22 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-remove-unqualified-resource: -------------------------------------------------------------------------------- 1 | error: Path 'hello' could not be associated with any partition. Prefix it with the partition resource directory. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-resource-list: -------------------------------------------------------------------------------- 1 | syv://secrets 2 | syv://mine@private-partition 3 | private-partition/hello -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-resource-show-qualified-non-existing-resource: -------------------------------------------------------------------------------- 1 | error: Could not open input file at 'private-partition/non-existing.gpg' for reading. Tried 'private-partition/non-existing' as well. 2 | Caused by: 3 | 1: No such file or directory (os error 2) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-resource-show-qualified-path: -------------------------------------------------------------------------------- 1 | hi to partition -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/partitions/partition-resource-show-unqualified-resource: -------------------------------------------------------------------------------- 1 | error: Path 'hello' could not be associated with any partition. Prefix it with the partition resource directory. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/fail-invalid-trust-model: -------------------------------------------------------------------------------- 1 | error: 'something-new' isn't a valid value for '--trust-model ' 2 | [possible values: always, web-of-trust] 3 | 4 | 5 | USAGE: 6 | syv --config-file init --gpg-keys-dir --recipients-file --secrets-dir --trust-model 7 | 8 | For more information try --help -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/fail-recipient-add-without-prior-import-of-all-users-wrong-partition: -------------------------------------------------------------------------------- 1 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Added recipient user b 3 | Imported recipient key at path 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 4 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 5 | Caused by: 6 | 3: Could not decrypt 'p3/added-by-new-user.gpg' to re-encrypt for new recipients. 7 | 2: The content was not encrypted for you. 8 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/precondition-vault-with-multiple-partitions-config: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: true 4 | trust_model: always 5 | secrets: p1 6 | gpg_keys: etc/keys 7 | recipients: etc/p1 8 | --- 9 | name: second 10 | auto_import: ~ 11 | trust_model: ~ 12 | secrets: p2 13 | gpg_keys: ~ 14 | recipients: etc/p2 15 | --- 16 | name: third 17 | auto_import: ~ 18 | trust_model: ~ 19 | secrets: p3 20 | gpg_keys: ~ 21 | recipients: etc/p3 22 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/precondition-vault-with-multiple-partitions/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/precondition-vault-with-multiple-partitions/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/precondition-vault-with-multiple-partitions/p2: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/precondition-vault-with-multiple-partitions/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/recipient-add-without-prior-import-of-all-users-right-partition: -------------------------------------------------------------------------------- 1 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Added recipient user b 3 | Re-encrypted 'p2/added-by-new-user' for new recipient(s) 4 | Re-encrypted 'p2/two' for new recipient(s) 5 | Re-encrypted 'p2/with-editor' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/resource-add-from-stdin-with-editor: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added 'p2/with-editor'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-listing-with-missing-key: -------------------------------------------------------------------------------- 1 | syv://p1 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) 3 | syv://second@p2 4 | Imported recipient key at path 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 5 | 7435ACDC03D55429C41637C4DB9831D842C18D28 (user b ) 6 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) 7 | syv://third@p3 8 | 7435ACDC03D55429C41637C4DB9831D842C18D28 (user b ) 9 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-add/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-add/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-add/p2: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-add/p3: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-init/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-init/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-init/p2: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-after-recipient-init/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-add-resource-to-p1: -------------------------------------------------------------------------------- 1 | Added 'p1/added-by-new-user'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-add-resource-to-p2: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 2 | Added 'p2/added-by-new-user'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-add-resource-to-p3: -------------------------------------------------------------------------------- 1 | Added 'p3/added-by-new-user'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/p2: -------------------------------------------------------------------------------- 1 | 7435ACDC03D55429C41637C4DB9831D842C18D28 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/p3: -------------------------------------------------------------------------------- 1 | 7435ACDC03D55429C41637C4DB9831D842C18D28 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-with-import: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Imported recipient key at path 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332' 3 | Removed key file at 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 4 | Wrote changed recipients to file at 'etc/p2' 5 | Re-encrypted 'p2/added-by-new-user' for new recipient(s) 6 | Re-encrypted 'p2/two' for new recipient(s) 7 | Re-encrypted 'p2/with-editor' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/p2: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-with-import: -------------------------------------------------------------------------------- 1 | Wrote changed recipients to file at 'etc/p3' 2 | Re-encrypted 'p3/added-by-new-user' for new recipient(s) 3 | Re-encrypted 'p3/three' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-recipient-add-to-multiple: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | Signed recipients key user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 3 | Exported public key for user user a (a test account user a) to 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 4 | Added recipient user a (a test account user a) 5 | Re-encrypted 'p2/two' for new recipient(s) 6 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 7 | Signed recipients key user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 8 | Exported public key for user user a (a test account user a) to 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 9 | Added recipient user a (a test account user a) 10 | Re-encrypted 'p3/three' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions-always-encrypt/vault-with-multiple-partitions-recipient-init: -------------------------------------------------------------------------------- 1 | Exported public key for user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82). -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/precondition-vault-with-multiple-partitions/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/precondition-vault-with-multiple-partitions/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/precondition-vault-with-multiple-partitions/p2: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/precondition-vault-with-multiple-partitions/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-add/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWj95tQEEALwHDOYX7FTRshbzGnEwNLKcctQmW63OdaAkkitBdFKIKrsUjqup 4 | BcxmuUxZ6iP8Qw36I2TEVjzdXmZCkCV19q0d7Lfe0aPWZwk//oCCSYl+t2EWFodi 5 | vnBOX/Evs31IYRRV+3uIJVmoBBlskgRK9eLIpmY0XkdTZaDb0YJCz0FpABEBAAG0 6 | LnVzZXIgYSAoYSB0ZXN0IGFjY291bnQgdXNlciBhKSA8YUBleGFtcGxlLmNvbT6I 7 | zgQTAQgAOBYhBB4RFOEbNitGtT4auu8XBHq0iL2CBQJaP3m1AhsDBQsJCAcCBhUI 8 | CQoLAgQWAgMBAh4BAheAAAoJEO8XBHq0iL2CGkoD/imHME2ukMynRy73UybaRHMs 9 | oOxEx/4j6O0CInfclon47bjm8L454xwnSvdjqHw/jOa5NXeXeGvHc/1Al1MFkEp+ 10 | +JMnuuZJXm/tQpjQ4j6GojlIGuw8JumkDy+3FmyjDz8KxJ54HtQ9AXv8VXCQin8P 11 | vNRqmgujwTkYgVgVf5sfiLMEEAEIAB0WIQTWM5cY6bWPzjxmx4qqW3vxUPSDMgUC 12 | Wj+COQAKCRCqW3vxUPSDMnIABACdsTOPM9fiV5+LS5q6powbol+nUXkACmFXWGRk 13 | 0uAI1qPA2dAE6AhRJ/Of1H/F4FfTpYTcCGJicd/c1ihUkrrUCD8CY03rU9F056Ls 14 | BVdDTIjSijbAZnWFZbN/27VwlDbWyICLDmAmPthnpga1lc/Y1MdmqsNwnQVvTk97 15 | IV0el7iNBFo/ebUBBAC8kwFUhSGj8V+Sylxu97/vCeMw/tav4DHtpaJ3cr+GPIXV 16 | YugXm5S/gjFtu0j/yJJ1xs0fIMXvfQVe8qW41L1yTDv1kKo3P2VwE6NdDGSLKCeG 17 | cJ2E/VM/vyHYinndtbvkZscxaElgRDR8bjR7JkzyhstHV7JbM2H5ivYZdlPdXwAR 18 | AQABiLYEGAEIACAWIQQeERThGzYrRrU+GrrvFwR6tIi9ggUCWj95tQIbDAAKCRDv 19 | FwR6tIi9glzTBACo4/IZbkHWu63fMuvnhyGXusgH/4qYC5R5ozN82Ir6xSTXpi7u 20 | YlMtle6HHMjjQ8xoBAgUVhYP2VhenN6sS/CzH8ftbIy6SOeSU6wJnwQZ0XNkSHPF 21 | gMshBAiduBQjwWXCgFC7f2ZKGeAiGcVLIg4Kl/XyggF8BOT/hB0ekfz3sQ== 22 | =KPOh 23 | -----END PGP PUBLIC KEY BLOCK----- 24 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-add/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-add/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-add/p2: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-add/p3: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-init/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWj95tQEEALwHDOYX7FTRshbzGnEwNLKcctQmW63OdaAkkitBdFKIKrsUjqup 4 | BcxmuUxZ6iP8Qw36I2TEVjzdXmZCkCV19q0d7Lfe0aPWZwk//oCCSYl+t2EWFodi 5 | vnBOX/Evs31IYRRV+3uIJVmoBBlskgRK9eLIpmY0XkdTZaDb0YJCz0FpABEBAAG0 6 | LnVzZXIgYSAoYSB0ZXN0IGFjY291bnQgdXNlciBhKSA8YUBleGFtcGxlLmNvbT6I 7 | zgQTAQgAOBYhBB4RFOEbNitGtT4auu8XBHq0iL2CBQJaP3m1AhsDBQsJCAcCBhUI 8 | CQoLAgQWAgMBAh4BAheAAAoJEO8XBHq0iL2CGkoD/imHME2ukMynRy73UybaRHMs 9 | oOxEx/4j6O0CInfclon47bjm8L454xwnSvdjqHw/jOa5NXeXeGvHc/1Al1MFkEp+ 10 | +JMnuuZJXm/tQpjQ4j6GojlIGuw8JumkDy+3FmyjDz8KxJ54HtQ9AXv8VXCQin8P 11 | vNRqmgujwTkYgVgVf5sfiLMEEAEIAB0WIQTWM5cY6bWPzjxmx4qqW3vxUPSDMgUC 12 | Wj+COQAKCRCqW3vxUPSDMnIABACdsTOPM9fiV5+LS5q6powbol+nUXkACmFXWGRk 13 | 0uAI1qPA2dAE6AhRJ/Of1H/F4FfTpYTcCGJicd/c1ihUkrrUCD8CY03rU9F056Ls 14 | BVdDTIjSijbAZnWFZbN/27VwlDbWyICLDmAmPthnpga1lc/Y1MdmqsNwnQVvTk97 15 | IV0el7iNBFo/ebUBBAC8kwFUhSGj8V+Sylxu97/vCeMw/tav4DHtpaJ3cr+GPIXV 16 | YugXm5S/gjFtu0j/yJJ1xs0fIMXvfQVe8qW41L1yTDv1kKo3P2VwE6NdDGSLKCeG 17 | cJ2E/VM/vyHYinndtbvkZscxaElgRDR8bjR7JkzyhstHV7JbM2H5ivYZdlPdXwAR 18 | AQABiLYEGAEIACAWIQQeERThGzYrRrU+GrrvFwR6tIi9ggUCWj95tQIbDAAKCRDv 19 | FwR6tIi9glzTBACo4/IZbkHWu63fMuvnhyGXusgH/4qYC5R5ozN82Ir6xSTXpi7u 20 | YlMtle6HHMjjQ8xoBAgUVhYP2VhenN6sS/CzH8ftbIy6SOeSU6wJnwQZ0XNkSHPF 21 | gMshBAiduBQjwWXCgFC7f2ZKGeAiGcVLIg4Kl/XyggF8BOT/hB0ekfz3sQ== 22 | =KPOh 23 | -----END PGP PUBLIC KEY BLOCK----- 24 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-init/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-init/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-init/p2: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-after-recipient-init/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-remove-oneself-from-p3-fails-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-remove-oneself-from-p3-fails-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-remove-oneself-from-p3-fails-directory/p2: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-remove-oneself-from-p3-fails-directory/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail: -------------------------------------------------------------------------------- 1 | error: Didn't find the key for 1 recipient(s) in the gpg database. This might mean it wasn't imported yet from the 'etc/keys' directory. 2 | The following recipient(s) could not be found in the gpg key database: 3 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Import key-file using 'gpg --import 'etc/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332') -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail-directory/p2: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p1-fail-directory/p3: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/p2: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-directory/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p2-with-import: -------------------------------------------------------------------------------- 1 | Removed key file at 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | Wrote changed recipients to file at 'etc/p2' 3 | Re-encrypted 'p2/two' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/p2: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-directory/p3: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import: -------------------------------------------------------------------------------- 1 | error: Didn't find the key for 1 recipient(s) in the gpg database. 2 | The following recipient(s) could not be found in the gpg key database: 3 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (No GPG keys directory) 4 | All recipients found in gpg database: 5 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 (user a (a test account user a) ) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import-directory/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import-directory/p1: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import-directory/p2: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-no-import-directory/p3: -------------------------------------------------------------------------------- 1 | 1E1114E11B362B46B53E1ABAEF17047AB488BD82 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-removes-themselves-from-p3-with-import: -------------------------------------------------------------------------------- 1 | Wrote changed recipients to file at 'etc/p3' 2 | Re-encrypted 'p3/three' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-show-resource-in-p1: -------------------------------------------------------------------------------- 1 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 2 | Caused by: 3 | 2: The content was not encrypted for you. 4 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-show-resource-in-p2: -------------------------------------------------------------------------------- 1 | 2 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-new-recipient-show-resource-in-p3: -------------------------------------------------------------------------------- 1 | 3 -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-recipient-add-to-multiple: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | Signed recipients key user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 3 | Exported public key for user user a (a test account user a) to 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 4 | Added recipient user a (a test account user a) 5 | Re-encrypted 'p2/two' for new recipient(s) 6 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 7 | Signed recipients key user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 8 | Exported public key for user user a (a test account user a) to 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 9 | Added recipient user a (a test account user a) 10 | Re-encrypted 'p3/three' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-recipient-add-to-unknown: -------------------------------------------------------------------------------- 1 | error: No partition matched the given selector 'unknown' -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-recipient-init: -------------------------------------------------------------------------------- 1 | Exported public key for user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82). -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients-and-partitions/vault-with-multiple-partitions-remove-oneself-from-p3-fails: -------------------------------------------------------------------------------- 1 | error: Cannot remove user Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) from 'etc/p3' as it would be empty afterwards. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/remove/recipient-after-remove-show-failure: -------------------------------------------------------------------------------- 1 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 2 | Caused by: 3 | 2: The content was not encrypted for you. 4 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/remove/recipient-remove-failure-just-in-keychain: -------------------------------------------------------------------------------- 1 | error: The following key(s) for removal could not be found in the recipients list. 2 | user c (905E53FE2FC0A500100AB80B056F92A52DF04D4E) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/remove/recipient-remove-failure-one-correct-and-one-unknown-key: -------------------------------------------------------------------------------- 1 | error: Didn't find the key for 1 user-id(s) in the gpg database. This might mean it wasn't imported yet from the 'keys' directory. 2 | The following user-id(s) could not be found in the gpg key database: 3 | unkown@example.com (Key-file does not exist at 'keys/unkown@example.com') 4 | All user-ids found in gpg database: 5 | 7435ACDC03D55429C41637C4DB9831D842C18D28 (user b ) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/remove/recipient-remove-failure-unknown-key: -------------------------------------------------------------------------------- 1 | error: Didn't find the key for 1 user-id(s) in the gpg database. This might mean it wasn't imported yet from the 'keys' directory. 2 | The following user-id(s) could not be found in the gpg key database: 3 | unkown@example.com (Key-file does not exist at 'keys/unkown@example.com') -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/remove/recipient-remove-success: -------------------------------------------------------------------------------- 1 | Removed key file at 'keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Wrote changed recipients to file at '.gpg-id' 3 | Re-encrypted 'a' for new recipient(s) 4 | Re-encrypted 'subdir/b' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-metadata-right-after-init/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-metadata-right-after-init/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-untrusted-user-a-with-fingerprint: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | Signed recipients key user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 3 | Exported public key for user user a (a test account user a) to 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 4 | Added recipient user a (a test account user a) 5 | Re-encrypted 'secret' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-untrusted-user-a-with-fingerprint-ambiguously: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | error: Did not manage to find suitable signing key for re-exporting the recipient keys. 3 | Caused by: 4 | 1: Multiple keys are suitable for signing, which is ambiguous. 5 | Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 6 | user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-untrusted-user-a-with-fingerprint-invalid-signing-key: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | error: Did not manage to find suitable signing key for re-exporting the recipient keys. 3 | Caused by: 4 | 2: The given signing key named 'foo@example.com' could not be found in the keychain. 5 | 1: End of file (gpg error 16383) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-untrusted-user-a-with-fingerprint-valid-signing-key: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 2 | Signed recipients key user a (a test account user a) (1E1114E11B362B46B53E1ABAEF17047AB488BD82) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 3 | Exported public key for user user a (a test account user a) to 'etc/keys/1E1114E11B362B46B53E1ABAEF17047AB488BD82' 4 | Added recipient user a (a test account user a) 5 | Re-encrypted 'secret' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-untrusted-user-with-fingerprint: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Signed recipients key user b (7435ACDC03D55429C41637C4DB9831D842C18D28) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 3 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 4 | Added recipient user b 5 | Re-encrypted 'secret' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-untrusted-user-with-fingerprint-metadata: -------------------------------------------------------------------------------- 1 | 7435ACDC03D55429C41637C4DB9831D842C18D28 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-unverified-unchanged-state/.gpg-id: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-unverified-unchanged-state/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-unverified-unchanged-state/sy-vault.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: ~ 3 | auto_import: false 4 | trust_model: gpg-web-of-trust 5 | secrets: "." 6 | gpg_keys: "./keys" 7 | recipients: "./.gpg-id" 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipient-add-valid-fingerprint-key-not-present-in-keys-dir: -------------------------------------------------------------------------------- 1 | error: Could not find fingerprint 'abcabc12', tried local file as well as gpg keychain. 2 | Caused by: 3 | 1: Did not find key file matching glob pattern '*abcabc12' in directory 'etc/keys'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/unverified/vault-recipients-add-unverified-failure-with-multi-recipient-keyfile: -------------------------------------------------------------------------------- 1 | Imported recipient key at path 'keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | error: One of the imported key-files contained more than one recipient. 3 | This might mean somebody trying to sneak in their key. The offending fingerprints are listed below 4 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/add-success-as-unknown-user: -------------------------------------------------------------------------------- 1 | Added 'new-secret'. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/list-with-relative-secrets-dir: -------------------------------------------------------------------------------- 1 | syv://secrets 2 | secret -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-b-failure: -------------------------------------------------------------------------------- 1 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Added recipient user b 3 | error: At least one recipient you try to encrypt for is untrusted. Consider (locally) signing the key with `gpg --sign-key ` or ultimately trusting them. 4 | Could not encrypt for recipient 7435ACDC03D55429C41637C4DB9831D842C18D28 (user b ) with error: Unusable public key (gpg error 53) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-b-recipients: -------------------------------------------------------------------------------- 1 | 7435ACDC03D55429C41637C4DB9831D842C18D28 2 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E 3 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 4 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-b-success-after-signing: -------------------------------------------------------------------------------- 1 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 2 | Added recipient user b 3 | Re-encrypted 'secret' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-c: -------------------------------------------------------------------------------- 1 | Exported public key for user user c to 'etc/keys/905E53FE2FC0A500100AB80B056F92A52DF04D4E' 2 | Added recipient user c 3 | Re-encrypted 'secret' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-c-keys-dir/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-c-keys-dir/recipients: -------------------------------------------------------------------------------- 1 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-from-keychain: -------------------------------------------------------------------------------- 1 | Signed recipients key user b (7435ACDC03D55429C41637C4DB9831D842C18D28) with signing key Tester (for testing only) (D6339718E9B58FCE3C66C78AAA5B7BF150F48332) 2 | Exported public key for user user b to 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28' 3 | Added recipient user b 4 | Re-encrypted 'a' for new recipient(s) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-add-from-keychain-recipients: -------------------------------------------------------------------------------- 1 | 7435ACDC03D55429C41637C4DB9831D842C18D28 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-init-c-config-dir/keys/D6339718E9B58FCE3C66C78AAA5B7BF150F48332: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mI0EWjkZ6wEEAL/ktneGTtpESmy1EwxetQUHJVN2JpzGGqYwJhzikmFEcJRz7epZ 4 | Q91dGRDJlYjoAlkq+AZnaKalaXEJjPhsk3LegX+GpjQ5stcXaDybfVTH5ivHmp/C 5 | Disuno4Yd/NmosftxpreXoP59lAyCXcFqwrfoO9zBtq2bY/VpCpuJq/NABEBAAG0 6 | LlRlc3RlciAoZm9yIHRlc3Rpbmcgb25seSkgPHRlc3RlckBleGFtcGxlLmNvbT6I 7 | uAQTAQIAIgUCWjkZ6wIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqlt7 8 | 8VD0gzJ4jQQAuH3T9/EcUJvCJWYobHJ4ZjbwCtsoYDs3SsSUGX1ZLAA7wf1+Qhqx 9 | mXVL/zKa0yw0dS7qmNpmVzqnK47fmEmqKr8PVcoJ/cYpYGUGpNAJj9CW4SYekoXS 10 | VYCtUtKA/l7vjVGrgqqRtPDyXHqf9dEfHGbdvUvjY9LF3WXKNroxgp24jQRaORnr 11 | AQQAtCZKPyai7iDXiLRLkiEvoldB+KEKZmPgEvtSYbnsYNGlCY8bZuzx+0utLQPM 12 | itTwfds7DijouRZBthsvapQaxt09MT7lbT1kWvSe/4SUDv/Jwb5sMUu+O1/PZa90 13 | ks/+bBjywHYe2P+xhKKUL/Ld2BevCT5izTqVt8CfCTTuSgUAEQEAAYifBBgBAgAJ 14 | BQJaORnrAhsMAAoJEKpbe/FQ9IMyTwUD/2mFXUY44mV+8qQ5IAcIMMvZ1LfPSLo5 15 | of0VksizITnoBYNzbHoqO34iqta7vbOn2kVmpkjvT1asGIvvTH/TgiZiJTOpDm0i 16 | reAtWyW2kmtPCS1ElFcqHKlDsrE5mn5PtOpvmyncgELpUVakABNgXW2sjdOVzvfh 17 | 0IZcNRhTy/8m 18 | =qlYm 19 | -----END PGP PUBLIC KEY BLOCK----- 20 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipient-init-c-config-dir/recipients: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 2 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipients-add-from-keychain-show-as-recipient: -------------------------------------------------------------------------------- 1 | a -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipients-init-single-secret-key: -------------------------------------------------------------------------------- 1 | Exported public key for user c (905E53FE2FC0A500100AB80B056F92A52DF04D4E). -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipients-list-after-adding-c-successfully: -------------------------------------------------------------------------------- 1 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E (user c ) 2 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/recipients-list-after-requesting-membership: -------------------------------------------------------------------------------- 1 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/show-fail-for-new-secret-as-unknown-user: -------------------------------------------------------------------------------- 1 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 2 | Caused by: 3 | 2: The content was not encrypted for you. 4 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/show-failure-as-unknown-user: -------------------------------------------------------------------------------- 1 | error: Export your public key using 'sy vault recipient init', then ask one of the existing recipients to import your public key using 'sy vault recipients add .' 2 | Caused by: 3 | 2: The content was not encrypted for you. 4 | 1: No secret key (gpg error 17) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/show-failure-encrypt-new-secret-missing-pub-key: -------------------------------------------------------------------------------- 1 | error: Didn't find the key for 1 recipient(s) in the gpg database. This might mean it wasn't imported yet from the 'etc/keys' directory. 2 | The following recipient(s) could not be found in the gpg key database: 3 | 7435ACDC03D55429C41637C4DB9831D842C18D28 (Import key-file using 'gpg --import 'etc/keys/7435ACDC03D55429C41637C4DB9831D842C18D28') 4 | All recipients found in gpg database: 5 | 905E53FE2FC0A500100AB80B056F92A52DF04D4E (user c ) 6 | D6339718E9B58FCE3C66C78AAA5B7BF150F48332 (Tester (for testing only) ) -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/show-success-as-user-b: -------------------------------------------------------------------------------- 1 | secret -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/recipients/verified/show-success-as-user-c: -------------------------------------------------------------------------------- 1 | secret -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/stateless/invalid-vault-path: -------------------------------------------------------------------------------- 1 | error: The vault file path '/' is invalid. -------------------------------------------------------------------------------- /tests/journeys/fixtures/snapshots/vault/stateless/unsupported-shell: -------------------------------------------------------------------------------- 1 | error: The shell 'foobar' is unsupported 2 | Caused by: 3 | 1: [valid values: bash, fish, zsh, powershell, elvish] -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/data-for-complex.tpl.yml: -------------------------------------------------------------------------------- 1 | page: 2 | title: Introduction 3 | 4 | user: 5 | name: Harald 6 | 7 | customer: 8 | name: anonymous 9 | 10 | product: 11 | title: BarPackFoo 12 | 13 | site: 14 | pages: 15 | - category: one 16 | - category: ~ 17 | - category: two 18 | users: 19 | - Harald 20 | - Schneider 21 | - Meier 22 | 23 | null: ~ 24 | array: 25 | - 1 26 | - 2 27 | - 3 28 | - 4 29 | 30 | 31 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/data.json.hbs: -------------------------------------------------------------------------------- 1 | { 2 | "password": "{{secret}}" 3 | } -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/partials/base0.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{title}} 3 | 4 |

Derived from base0.hbs

5 | {{~> page}} 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/partials/base1.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{title}} 3 | 4 |

Derived from base1.hbs

5 | {{~> page}} 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/partials/included.liquid: -------------------------------------------------------------------------------- 1 | from global: {{global}} 2 | as argument: {{arg}} -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/partials/template.hbs: -------------------------------------------------------------------------------- 1 | {{#*inline "page"}} 2 |

Rendered in partial, parent is {{parent}}

3 | {{/inline}} 4 | {{~> (parent)~}} 5 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/the-answer.hbs: -------------------------------------------------------------------------------- 1 | : What is the answer to everything? 2 |
: {{the-answer}} 3 | -------------------------------------------------------------------------------- /tests/journeys/fixtures/substitute/with-partial.liquid: -------------------------------------------------------------------------------- 1 | from source: {{global}} 2 | {% assign arg = 'argument from caller' %} 3 | included: {% include 'included' %} -------------------------------------------------------------------------------- /tests/journeys/zz-getting-started.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | root="$(cd "${0%/*}" && pwd)" 6 | # shellcheck source=./tests/utilities.sh 7 | source "$root/../utilities.sh" 8 | 9 | SUCCESSFULLY=0 10 | 11 | fixture="$root/fixtures" 12 | snapshot="$fixture/snapshots/getting-started" 13 | 14 | (sandbox 15 | title "getting started" 16 | (with "a standard alpine image" 17 | (with "a clone of the getting-started repository" 18 | { 19 | git clone https://github.com/share-secrets-safely/getting-started /getting-started 20 | cd /getting-started/ 21 | } > /dev/null 22 | 23 | (when "executing one of the wrappers" 24 | it "succeeds" && { 25 | WITH_SNAPSHOT="$snapshot/syv-output-on-alpine" \ 26 | expect_run $SUCCESSFULLY ./syp a=42 27 | } 28 | ) 29 | ) 30 | ) 31 | ) 32 | -------------------------------------------------------------------------------- /tests/journeys/zz-vault-gpg1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | exe=${1:?First argument is the executable under test} 5 | 6 | root="$(cd "${0%/*}" && pwd)" 7 | exe="$root/../../$exe" 8 | # shellcheck source=./tests/gpg-helpers.sh 9 | source "$root/../gpg-helpers.sh" 10 | 11 | WITH_FAILURE=1 12 | 13 | fixture="$root/fixtures" 14 | snapshot="$fixture/snapshots/vault/init-with-gpg1" 15 | 16 | (sandboxed 17 | title "'vault recipient add unverified'" 18 | (with "a vault initialized for a single recipient and an existing secret" 19 | { import_user "$fixture/tester.sec.asc" 20 | mkdir secrets 21 | "$exe" init --secrets-dir secrets --gpg-keys-dir ./etc/keys --recipients-file ./etc/recipients 22 | echo -n secret | "$exe" add :secret 23 | } &>/dev/null 24 | 25 | (with "an untrusted user requesting membership" 26 | (as_user "$fixture/b.sec.asc" 27 | "$exe" recipient init 28 | ) > /dev/null 29 | 30 | (when "adding them as recipient via fingerprint" 31 | it "fails with an error message indicating the GPG version doesn't support signing" && { 32 | WITH_SNAPSHOT="$snapshot/gpg1-vault-recipient-add-untrusted-user-with-fingerprint" \ 33 | expect_run $WITH_FAILURE "$exe" recipient add DB9831D842C18D28 34 | } 35 | 36 | it "does not alter the meta-data structure" && { 37 | expect_snapshot "$snapshot/gpg1-vault-recipient-add-untrusted-user-with-fingerprint-metadata" etc 38 | } 39 | ) 40 | ) 41 | ) 42 | ) 43 | -------------------------------------------------------------------------------- /tests/stateful-journey-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -u 4 | exe=${1:?First argument is the executable under test} 5 | image=${2:?Second argument is the docker image to use as basis} 6 | 7 | relative_root="${0%/*}" 8 | absolute_root="$(cd "$relative_root/.." && pwd)" 9 | RED="$(tput setaf 1)" 10 | 11 | function in_red() { 12 | echo "$RED" "$@" 13 | } 14 | 15 | find "$relative_root/journeys" -maxdepth 1 -type f -name "*.sh" | sort | \ 16 | while read -r journey; do 17 | make_journey_dockerfile="${journey%/*}/dockerfile-gen/${journey##*/}" 18 | journey_image="$image" 19 | if [[ -x "$make_journey_dockerfile" ]]; then 20 | journey_image="${journey##*/}" 21 | BASE_IMAGE="$image" "$make_journey_dockerfile" | docker build -t "$journey_image" - 22 | else 23 | echo 1>&2 "Custom docker image supported via script at 'BASE_IMAGE=$image $make_journey_dockerfile'" 24 | fi || exit $? 25 | 26 | docker_args=( docker run -v "$absolute_root/.docker-cargo-cache:/usr/local/cargo/registry" -v "$absolute_root:/volume" -w '/volume' --rm -t "$journey_image" "$journey" "$exe" ) 27 | in_red "Running '${docker_args[*]}'" 28 | eval "${docker_args[@]}" || exit $? 29 | done 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /tests/stateless-journey-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu -o pipefail 4 | exe=${1:?First argument is the executable under test} 5 | exe="$(cd "${exe%/*}" && pwd)/${exe##*/}" 6 | 7 | rela_root="${0%/*}" 8 | root="$(cd "${rela_root}" && pwd)" 9 | # shellcheck source=./tests/gpg-helpers.sh 10 | source "$root/gpg-helpers.sh" 11 | 12 | WITH_FAILURE=1 13 | SUCCESSFULLY=0 14 | 15 | fixture="$root/journeys/fixtures" 16 | 17 | # shellcheck source=./tests/included-stateless-merge.sh 18 | source "$root/included-stateless-merge.sh" 19 | 20 | # shellcheck source=./tests/included-stateless-vault.sh 21 | source "$root/included-stateless-vault.sh" 22 | 23 | # shellcheck source=./tests/included-stateless-substitute.sh 24 | source "$root/included-stateless-substitute.sh" 25 | 26 | # shellcheck source=./tests/included-stateless-extract.sh 27 | source "$root/included-stateless-extract.sh" 28 | 29 | --------------------------------------------------------------------------------