cozy-ach v1.53.0
ACH
Automated Cozy Hydrater (ACH ax) is a CLI that lets you request, create and remove records in your Cozy.
Install
Install ACH using yarn 1 (v1.22.18 or greater)
$ yarn global add cozy-achIf 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
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 scriptExamples
Import data
$ 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.jsonIf the file doesn't exist in the application, ACH will try to find it inside its data folder.
handlebars
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.jsYou can see an example of helpers here.
--url param
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.worksserial import
By default, ACH imports data in parallel, by batches of 25. It is possible to import serially :
$ env ACH_PARALLEL=false ACH import data.jsonImport directories with files
To import a directory into a Cozy, use the importDir command:
$ ACH importDir myDirectoryPath # default will be ./DirectoriesToInjectAll your target directory content will be imported to the root of Cozy Drive following the correct repositories tree.
Create photo albums with ACH
You can create photo albums from a folder on your disk.
$ python scripts/albums-from-dir.py my-photos-directory resulting-albums.jsonExport data removing the ids
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.jsonContrary to _id, _rev is stripped by default. To keep the _rev field, set the
environment variable ACH_KEEP_REV.
Import data from a CSV
See the example.
Generate some files
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 DriveOptions:
-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)
Generate some papers
(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.createdByAppprop)
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago