Adds the render.py WeasyPrint renderer, the pod-based bitwarden-print.sh wrapper, a Containerfile, a sample export (JSON + PDF), README and LICENSE.
174 lines
5.6 KiB
JSON
174 lines
5.6 KiB
JSON
{
|
|
"encrypted": false,
|
|
"folders": [
|
|
{ "id": "f1b2c3d4-0000-4000-8000-000000000001", "name": "Work" },
|
|
{ "id": "f1b2c3d4-0000-4000-8000-000000000002", "name": "Personal" },
|
|
{ "id": "f1b2c3d4-0000-4000-8000-000000000003", "name": "Infrastructure" }
|
|
],
|
|
"items": [
|
|
{
|
|
"id": "11111111-1111-4111-8111-111111111111",
|
|
"organizationId": null,
|
|
"folderId": "f1b2c3d4-0000-4000-8000-000000000001",
|
|
"type": 1,
|
|
"name": "GitHub",
|
|
"notes": "Recovery codes are in the safe.\n2FA enforced on the org.",
|
|
"favorite": true,
|
|
"reprompt": 1,
|
|
"login": {
|
|
"uris": [
|
|
{ "match": null, "uri": "https://github.com/login" },
|
|
{ "match": 0, "uri": "https://gist.github.com" }
|
|
],
|
|
"username": "jdoe@example.com",
|
|
"password": "correct-horse-battery-staple",
|
|
"totp": "otpauth://totp/GitHub:jdoe?secret=JBSWY3DPEHPK3PXP",
|
|
"passwordRevisionDate": "2024-03-11T09:12:44.000Z"
|
|
},
|
|
"collectionIds": null,
|
|
"creationDate": "2019-05-02T14:22:10.000Z",
|
|
"revisionDate": "2024-03-11T09:12:44.000Z",
|
|
"deletedDate": null,
|
|
"fields": [
|
|
{ "name": "recovery email", "value": "recovery@example.com", "type": 0, "linkedId": null },
|
|
{ "name": "PIN", "value": "4711", "type": 1, "linkedId": null }
|
|
],
|
|
"passwordHistory": [
|
|
{ "lastUsedDate": "2023-11-01T08:00:00.000Z", "password": "old-secret-1" },
|
|
{ "lastUsedDate": "2022-06-15T08:00:00.000Z", "password": "old-secret-0" }
|
|
],
|
|
"attachments": [
|
|
{
|
|
"id": "att-0001",
|
|
"fileName": "recovery-codes.txt",
|
|
"size": "482",
|
|
"sizeName": "482 bytes",
|
|
"url": "https://vault.example/attachments/att-0001"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "22222222-2222-4222-8222-222222222222",
|
|
"organizationId": "org-1",
|
|
"folderId": "f1b2c3d4-0000-4000-8000-000000000001",
|
|
"type": 1,
|
|
"name": "Internal wiki",
|
|
"notes": null,
|
|
"favorite": false,
|
|
"reprompt": 0,
|
|
"login": {
|
|
"uris": [{ "match": 0, "uri": "https://wiki.internal.example" }],
|
|
"username": "svc-wiki",
|
|
"password": "S3cr3t!wiki#2024",
|
|
"totp": null
|
|
},
|
|
"collectionIds": ["col-1"],
|
|
"creationDate": "2021-01-07T10:00:00.000Z",
|
|
"revisionDate": "2024-09-30T16:45:00.000Z",
|
|
"fields": null,
|
|
"passwordHistory": null,
|
|
"attachments": null
|
|
},
|
|
{
|
|
"id": "33333333-3333-4333-8333-333333333333",
|
|
"organizationId": null,
|
|
"folderId": "f1b2c3d4-0000-4000-8000-000000000002",
|
|
"type": 3,
|
|
"name": "Visa Business",
|
|
"notes": "Expires 2027, travel card.",
|
|
"favorite": false,
|
|
"reprompt": 0,
|
|
"card": {
|
|
"cardholderName": "Jane Doe",
|
|
"brand": "Visa",
|
|
"number": "4111111111111111",
|
|
"expMonth": "9",
|
|
"expYear": "2027",
|
|
"code": "123"
|
|
},
|
|
"creationDate": "2020-02-02T12:00:00.000Z",
|
|
"revisionDate": "2023-04-18T07:30:00.000Z",
|
|
"fields": []
|
|
},
|
|
{
|
|
"id": "44444444-4444-4444-8444-444444444444",
|
|
"organizationId": null,
|
|
"folderId": "f1b2c3d4-0000-4000-8000-000000000002",
|
|
"type": 4,
|
|
"name": "Passport",
|
|
"notes": null,
|
|
"favorite": false,
|
|
"reprompt": 0,
|
|
"identity": {
|
|
"title": "Dr.",
|
|
"firstName": "Jane",
|
|
"middleName": "Q.",
|
|
"lastName": "Doe",
|
|
"address1": "1 Example Street",
|
|
"address2": "Apt 4",
|
|
"address3": "",
|
|
"city": "Springfield",
|
|
"state": "IL",
|
|
"postalCode": "62704",
|
|
"country": "United States",
|
|
"company": "Example GmbH",
|
|
"email": "jane@example.com",
|
|
"phone": "+1 555 0100",
|
|
"ssn": "000-00-0000",
|
|
"username": "jdoe",
|
|
"passportNumber": "X1234567",
|
|
"licenseNumber": "D-998877"
|
|
},
|
|
"creationDate": "2018-08-08T08:08:08.000Z",
|
|
"revisionDate": "2022-12-24T18:00:00.000Z"
|
|
},
|
|
{
|
|
"id": "55555555-5555-4555-8555-555555555555",
|
|
"organizationId": null,
|
|
"folderId": "f1b2c3d4-0000-4000-8000-000000000003",
|
|
"type": 2,
|
|
"name": "Router recovery phrase",
|
|
"notes": "word word word word word word word word",
|
|
"favorite": false,
|
|
"reprompt": 0,
|
|
"secureNote": { "type": 0 },
|
|
"creationDate": "2023-03-03T03:03:03.000Z",
|
|
"revisionDate": "2023-03-03T03:03:03.000Z",
|
|
"fields": [
|
|
{ "name": "admin password", "value": "admin-router-pass", "type": 1, "linkedId": null }
|
|
]
|
|
},
|
|
{
|
|
"id": "66666666-6666-4666-8666-666666666666",
|
|
"organizationId": null,
|
|
"folderId": "f1b2c3d4-0000-4000-8000-000000000003",
|
|
"type": 5,
|
|
"name": "deploy@build-host",
|
|
"notes": "Key used by CI.",
|
|
"favorite": false,
|
|
"reprompt": 0,
|
|
"sshKey": {
|
|
"privateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAA\n-----END OPENSSH PRIVATE KEY-----",
|
|
"publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExample deploy@build-host",
|
|
"fingerprint": "SHA256:abcdefghijklmnopqrstuvwxyz0123456789",
|
|
"keyFingerprint": "SHA256:abcdefghijklmnopqrstuvwxyz0123456789"
|
|
},
|
|
"creationDate": "2024-01-15T09:00:00.000Z",
|
|
"revisionDate": "2024-01-15T09:00:00.000Z",
|
|
"fields": null,
|
|
"attachments": null,
|
|
"unknownTopLevelKey": "kept because every value must be printed",
|
|
"extraObject": { "nested": { "flag": true, "count": 3 }, "emptyList": [], "emptyObject": {} }
|
|
}
|
|
],
|
|
"collections": [
|
|
{
|
|
"id": "col-1",
|
|
"organizationId": "org-1",
|
|
"name": "Shared infra",
|
|
"externalId": null,
|
|
"readOnly": false
|
|
}
|
|
]
|
|
}
|