Automated Cozy Hydrater (ACH [ax]) is a CLI that lets you request, create and remove records in your Cozy.
Install ACH using yarn 1 (v1.22.18 or greater)
$ yarn global add cozy-ach
If you cannot execute ACH
after this command, it may be because you do not have
the directory where yarn
stores its symbolic links in your PATH
. Edit it to append
the result of yarn global bin
.
Usage: ACH [options] [command]
Options:
-V, --version output the version number
-t --token [token] Token file to use
-y --yes Does not ask for confirmation on sensitive operations
-u --url [url] URL of the cozy to use. Defaults to "http://cozy.localhost:8080".' (default: "http://cozy.localhost:8080")
-h, --help output usage information
Commands:
import <filepath> [handlebarsOptionsFile] The file containing the JSON data to import. Defaults to "example-data.json". If the file doesn't exist in the application, ACH will try to find it inside its data folder. Then the dummy helpers JS file (optional).
importDir <directoryPath> The path to the directory content to import. Defaults to "./DirectoriesToInject".
generateFiles [filesCount] [dirId] Generates a given number of small files. (optional dirId)
drop [options] <doctypes...> Deletes all documents of the provided doctypes. For real.
export <doctypes> [filename] Exports data from the doctypes (separated by commas) to filename
downloadFile <fileid> Download the file
delete <doctype> <ids...> Delete document(s)
updateSettings Update settings
token <doctypes...> Generate token
script [options] <scriptName> Launch script
ls-scripts Lists all built-in scripts, useful for autocompletion
batch [options] <scriptName> <domainsFile> Launch script
$ cat data.json
{
"io.cozy.bills": [
{
"_id": "eba16106554ca9e23012f83f9c7937c0",
"amount": 0.71,
"beneficiary": "Thyrion Lannister",
"date": "1455-05-08T22:00:00.000Z",
"filename": "20170508_528117465_R17125200206528395_malakoff_mederic.pdf",
"fileurl": "https://extranet.braavos-bank.com/espaceClient/sante/tbs/tbsGenererPDF.do?remb=34",
"groupAmount": 3.58,
"idPrestation": "528117465_R17125200206528395_412877436",
"idReimbursement": "528117465_R17125200206528395",
"invoice": "io.cozy.files:ff5864e01f2d20c472f2b0f6531860b7",
"isRefund": true,
"isThirdPartyPayer": true,
"originalAmount": 2.04,
"originalDate": "2017-04-28T22:00:00.000Z",
"socialSecurityRefund": 1.33,
"subtype": "Liver transplant",
"type": "health_costs",
"vendor": "Iron Bank of Braavos"
},
{
"_id": "eba16106554ca9e23012f83f9c793761",
"amount": 50,
"beneficiary": "Jamie LANNISTER",
"date": "1455-05-17T22:00:00.000Z",
"filename": "20170517_528117465_R17137202332136169_malakoff_mederic.pdf",
"fileurl": "https://extranet.braavos-bank.com/espaceClient/sante/tbs/tbsGenererPDF.do?remb=33",
"groupAmount": 175,
"idPrestation": "528117465_R17137202332136169_415641280",
"idReimbursement": "528117465_R17137202332136169",
"invoice": "io.cozy.files:c9a4b2104b4a10de543bd574ac9ff9b1",
"isRefund": true,
"isThirdPartyPayer": true,
"originalAmount": 108,
"originalDate": "1455-05-09T22:00:00.000Z",
"socialSecurityRefund": 7.22,
"subtype": "Golden hand",
"type": "health_costs",
"vendor": "Iron Bank of Braavos"
},
{
"_id": "eba16106554ca9e23012f83f9c7936fa",
"amount": 7.5,
"beneficiary": "Jamie LANNISTER",
"date": "1455-05-21T22:00:00.000Z",
"filename": "20170521_528117465_R171401014733001_malakoff_mederic.pdf",
"fileurl": "https://extranet.braavos-bank.com/espaceClient/sante/tbs/tbsGenererPDF.do?remb=32",
"groupAmount": 7.5,
"idPrestation": "528117465_R171401014733001_416477228",
"idReimbursement": "528117465_R171401014733001",
"invoice": "io.cozy.files:c9a4b2104b4a10de543bd574ac9fed3a",
"isRefund": true,
"isThirdPartyPayer": false,
"originalAmount": 25,
"originalDate": "1455-05-15T22:00:00.000Z",
"socialSecurityRefund": 17.5,
"subtype": "Chiropractor",
"type": "health_costs",
"vendor": "Iron Bank of Braavos"
},
{
"_id": "eba16106554ca9e23012f83f9c7936dd",
"amount": 0.89,
"beneficiary": "Jamie LANNISTER",
"date": "2017-07-30T22:00:00.000Z",
"filename": "20170730_528117465_R17209200405325685_malakoff_mederic.pdf",
"fileurl": "https://extranet.braavos-bank.com/espaceClient/sante/tbs/tbsGenererPDF.do?remb=30",
"groupAmount": 5.21,
"idPrestation": "528117465_R17209200405325685_432873233",
"idReimbursement": "528117465_R17209200405325685",
"invoice": "io.cozy.files:ff5864e01f2d20c472f2b0f6531853ef",
"isRefund": true,
"isThirdPartyPayer": true,
"originalAmount": 2.54,
"originalDate": "2017-07-24T22:00:00.000Z",
"socialSecurityRefund": 1.65,
"subtype": "Chemist",
"type": "health_costs",
"vendor": "Iron Bank of Braavos"
},
{
"_id": "eba16106554ca9e23012f83f9c79311a",
"amount": 0.36,
"beneficiary": "Jamie LANNISTER",
"date": "2017-08-06T22:00:00.000Z",
"filename": "20170806_528117465_R17216201307522910_malakoff_mederic.pdf",
"fileurl": "https://extranet.braavos-bank.com/espaceClient/sante/tbs/tbsGenererPDF.do?remb=29",
"groupAmount": 7.709999999999999,
"idPrestation": "528117465_R17216201307522910_434482904",
"idReimbursement": "528117465_R17216201307522910",
"invoice": "io.cozy.files:ff5864e01f2d20c472f2b0f653185344",
"isRefund": true,
"isThirdPartyPayer": true,
"originalAmount": 1.02,
"originalDate": "2017-08-01T22:00:00.000Z",
"socialSecurityRefund": 0.66,
"subtype": "Sour ",
"type": "health_costs",
"vendor": "Iron Bank of Braavos"
}
]
}
$ ACH import data.json
If the file doesn't exist in the application, ACH will try to find it inside its data folder.
Some JSON files use handlebars helpers, for those file, you need to specify the file where the helpers are defined.
$ ACH import data/bank/bankData.json data/bank/helpers/bankDummyHelpers.js
You can see an example of helpers here.
You can import to a remote Cozy with the --url
option :
$ ACH import data/bank/bankData.json data/bank/helpers/bankDummyHelpers.js --url https://recette.cozy.works
By default, ACH imports data in parallel, by batches of 25. It is possible to import serially :
$ env ACH_PARALLEL=false ACH import data.json
To import a directory into a Cozy, use the importDir
command:
$ ACH importDir myDirectoryPath # default will be ./DirectoriesToInject
All your target directory content will be imported to the root of Cozy Drive following the correct repositories tree.
You can create photo albums from a folder on your disk.
$ python scripts/albums-from-dir.py my-photos-directory resulting-albums.json
By default, exported data contains all _id
. Sometimes, you want to strip the ids from the documents you export. Set the
environment variable ACH_NO_KEEP_ID
to do so :
env ACH_NO_KEEP_ID=true ACH export io.cozy.bills --url https://isabelledurand.cozy.rocks ./bills.json
Contrary to _id
, _rev
is stripped by default. To keep the _rev
field, set the
environment variable ACH_KEEP_REV
.
See the example.
To create files into a Cozy, use the generateFiles
command:
$ ACH generateFiles 10 <id of directory> # by default will be at the root of your Drive
Options:
-q
/--qualify
: In order to have a random qualification on your files-m
/--mime
: In order to change the default mime of files (text/plain
)
(usefull for MesPapiers)
To create qualified files with contacts referenced in a Cozy, use the script papers/createPapers
command.
ACH script papers/createPapers [numberFile] [folderId] -t <token>
Parameters:
numberFile
: Number of papers to create (default: 1)folderId
: ID of the folder where the files will be created. (default: 'io.cozy.files.root-dir')
Options:
-t
/--token
: app/konnector token, required to view files in the MesPapiers app.(Creates thecozyMetadata.createdByApp
prop)