storyblok-backup 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/backup/components/feature.json +34 -0
- package/.output/backup/components/grid.json +27 -0
- package/.output/backup/components/page.json +80 -0
- package/.output/backup/components/teaser.json +27 -0
- package/.output/backup/components/test.json +23 -0
- package/.output/backup/stories/522674929.json +118 -0
- package/.output/backup/stories/569104997.json +96 -0
- package/.output/backup/stories/569109297.json +86 -0
- package/.output/backup/stories/569110113.json +112 -0
- package/.output/backup/stories/569112436.json +89 -0
- package/.output/backup/stories/569114646.json +89 -0
- package/.output/backup/stories/569128208.json +75 -0
- package/.output/daily-2024-11-22-10-06-41.zip +0 -0
- package/README.md +58 -54
- package/bin/storyblok-backup.mjs +46 -28
- package/bin/storyblok-restore.mjs +13 -0
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "feature",
|
|
3
|
+
"display_name": null,
|
|
4
|
+
"description": null,
|
|
5
|
+
"created_at": "2024-07-13T20:18:27.194Z",
|
|
6
|
+
"updated_at": "2024-07-13T22:32:08.433Z",
|
|
7
|
+
"id": 6045521,
|
|
8
|
+
"schema": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "text"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"image": null,
|
|
14
|
+
"preview_field": null,
|
|
15
|
+
"is_root": false,
|
|
16
|
+
"preview_tmpl": null,
|
|
17
|
+
"is_nestable": true,
|
|
18
|
+
"all_presets": [],
|
|
19
|
+
"preset_id": null,
|
|
20
|
+
"real_name": "feature",
|
|
21
|
+
"component_group_uuid": "6695906b-b6d3-4149-b237-3c1305dff08d",
|
|
22
|
+
"color": null,
|
|
23
|
+
"icon": null,
|
|
24
|
+
"internal_tags_list": [
|
|
25
|
+
{
|
|
26
|
+
"id": 47100,
|
|
27
|
+
"name": "component-tag2"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"internal_tag_ids": [
|
|
31
|
+
"47100"
|
|
32
|
+
],
|
|
33
|
+
"content_type_asset_preview": null
|
|
34
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "grid",
|
|
3
|
+
"display_name": null,
|
|
4
|
+
"description": null,
|
|
5
|
+
"created_at": "2024-07-13T20:18:27.179Z",
|
|
6
|
+
"updated_at": "2024-07-13T20:18:27.179Z",
|
|
7
|
+
"id": 6045520,
|
|
8
|
+
"schema": {
|
|
9
|
+
"columns": {
|
|
10
|
+
"type": "bloks"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"image": null,
|
|
14
|
+
"preview_field": null,
|
|
15
|
+
"is_root": false,
|
|
16
|
+
"preview_tmpl": null,
|
|
17
|
+
"is_nestable": true,
|
|
18
|
+
"all_presets": [],
|
|
19
|
+
"preset_id": null,
|
|
20
|
+
"real_name": "grid",
|
|
21
|
+
"component_group_uuid": null,
|
|
22
|
+
"color": null,
|
|
23
|
+
"icon": null,
|
|
24
|
+
"internal_tags_list": [],
|
|
25
|
+
"internal_tag_ids": [],
|
|
26
|
+
"content_type_asset_preview": null
|
|
27
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "page",
|
|
3
|
+
"display_name": null,
|
|
4
|
+
"description": null,
|
|
5
|
+
"created_at": "2024-07-13T20:18:27.146Z",
|
|
6
|
+
"updated_at": "2024-10-25T08:47:01.171Z",
|
|
7
|
+
"id": 6045518,
|
|
8
|
+
"schema": {
|
|
9
|
+
"body": {
|
|
10
|
+
"type": "bloks"
|
|
11
|
+
},
|
|
12
|
+
"test": {
|
|
13
|
+
"type": "option",
|
|
14
|
+
"pos": 1,
|
|
15
|
+
"use_uuid": true,
|
|
16
|
+
"source": "internal",
|
|
17
|
+
"exclude_empty_option": true,
|
|
18
|
+
"datasource_slug": "test"
|
|
19
|
+
},
|
|
20
|
+
"reference": {
|
|
21
|
+
"type": "option",
|
|
22
|
+
"pos": 2,
|
|
23
|
+
"use_uuid": true,
|
|
24
|
+
"source": "internal_stories",
|
|
25
|
+
"entry_appearance": "card"
|
|
26
|
+
},
|
|
27
|
+
"image": {
|
|
28
|
+
"type": "asset",
|
|
29
|
+
"pos": 3,
|
|
30
|
+
"filetypes": [
|
|
31
|
+
"images"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"link": {
|
|
35
|
+
"type": "multilink",
|
|
36
|
+
"pos": 4
|
|
37
|
+
},
|
|
38
|
+
"richtext": {
|
|
39
|
+
"type": "richtext",
|
|
40
|
+
"pos": 5
|
|
41
|
+
},
|
|
42
|
+
"multi_option": {
|
|
43
|
+
"type": "options",
|
|
44
|
+
"pos": 6,
|
|
45
|
+
"source": "internal_stories"
|
|
46
|
+
},
|
|
47
|
+
"references": {
|
|
48
|
+
"type": "options",
|
|
49
|
+
"pos": 7,
|
|
50
|
+
"is_reference_type": true,
|
|
51
|
+
"source": "internal_stories",
|
|
52
|
+
"entry_appearance": "card",
|
|
53
|
+
"allow_advanced_search": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"image": "",
|
|
57
|
+
"preview_field": null,
|
|
58
|
+
"is_root": true,
|
|
59
|
+
"preview_tmpl": null,
|
|
60
|
+
"is_nestable": false,
|
|
61
|
+
"all_presets": [
|
|
62
|
+
{
|
|
63
|
+
"id": 2331470,
|
|
64
|
+
"name": "my-preset",
|
|
65
|
+
"component_id": 6045518,
|
|
66
|
+
"image": "",
|
|
67
|
+
"icon": "",
|
|
68
|
+
"color": "",
|
|
69
|
+
"description": ""
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"preset_id": null,
|
|
73
|
+
"real_name": "page",
|
|
74
|
+
"component_group_uuid": null,
|
|
75
|
+
"color": null,
|
|
76
|
+
"icon": null,
|
|
77
|
+
"internal_tags_list": [],
|
|
78
|
+
"internal_tag_ids": [],
|
|
79
|
+
"content_type_asset_preview": null
|
|
80
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "teaser",
|
|
3
|
+
"display_name": null,
|
|
4
|
+
"description": null,
|
|
5
|
+
"created_at": "2024-07-13T20:18:27.163Z",
|
|
6
|
+
"updated_at": "2024-07-13T20:18:27.163Z",
|
|
7
|
+
"id": 6045519,
|
|
8
|
+
"schema": {
|
|
9
|
+
"headline": {
|
|
10
|
+
"type": "text"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"image": null,
|
|
14
|
+
"preview_field": null,
|
|
15
|
+
"is_root": false,
|
|
16
|
+
"preview_tmpl": null,
|
|
17
|
+
"is_nestable": true,
|
|
18
|
+
"all_presets": [],
|
|
19
|
+
"preset_id": null,
|
|
20
|
+
"real_name": "teaser",
|
|
21
|
+
"component_group_uuid": null,
|
|
22
|
+
"color": null,
|
|
23
|
+
"icon": null,
|
|
24
|
+
"internal_tags_list": [],
|
|
25
|
+
"internal_tag_ids": [],
|
|
26
|
+
"content_type_asset_preview": null
|
|
27
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "test",
|
|
3
|
+
"display_name": null,
|
|
4
|
+
"description": null,
|
|
5
|
+
"created_at": "2024-10-25T08:14:10.889Z",
|
|
6
|
+
"updated_at": "2024-10-25T08:14:10.889Z",
|
|
7
|
+
"id": 6473083,
|
|
8
|
+
"schema": {},
|
|
9
|
+
"image": null,
|
|
10
|
+
"preview_field": null,
|
|
11
|
+
"is_root": false,
|
|
12
|
+
"preview_tmpl": null,
|
|
13
|
+
"is_nestable": true,
|
|
14
|
+
"all_presets": [],
|
|
15
|
+
"preset_id": null,
|
|
16
|
+
"real_name": "test",
|
|
17
|
+
"component_group_uuid": null,
|
|
18
|
+
"color": null,
|
|
19
|
+
"icon": null,
|
|
20
|
+
"internal_tags_list": [],
|
|
21
|
+
"internal_tag_ids": [],
|
|
22
|
+
"content_type_asset_preview": null
|
|
23
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Home",
|
|
3
|
+
"parent_id": 0,
|
|
4
|
+
"group_id": "62c244df-afed-400c-9c3d-dc17cc528501",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-07-13T20:18:27.228Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T09:11:52.910Z",
|
|
11
|
+
"published_at": "2024-08-15T10:11:20.942Z",
|
|
12
|
+
"id": 522674929,
|
|
13
|
+
"uuid": "892a6960-a311-4b19-9d73-e458e582cc50",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "8127698d-346f-491f-8e51-3969724156fb",
|
|
17
|
+
"body": [
|
|
18
|
+
{
|
|
19
|
+
"_uid": "10868157-a135-443b-b1b6-9069e5b3ad47",
|
|
20
|
+
"headline": "Hello world!",
|
|
21
|
+
"component": "teaser"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"_uid": "624a8c0b-b1a4-47e5-82c1-9b17c1510b22",
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"_uid": "69aefccd-6f0a-4dee-af41-337e9cf31bae",
|
|
28
|
+
"name": "Feature 1",
|
|
29
|
+
"component": "feature"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"_uid": "ebe62594-559c-429f-af41-9fa000b0532b",
|
|
33
|
+
"name": "Feature 2",
|
|
34
|
+
"component": "feature"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"_uid": "82d5149c-8cf5-462b-89c0-2481a2265b46",
|
|
38
|
+
"name": "Feature 3",
|
|
39
|
+
"component": "feature"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"component": "grid"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"link": {
|
|
46
|
+
"id": "",
|
|
47
|
+
"url": "",
|
|
48
|
+
"linktype": "story",
|
|
49
|
+
"fieldtype": "multilink",
|
|
50
|
+
"cached_url": ""
|
|
51
|
+
},
|
|
52
|
+
"test": "value",
|
|
53
|
+
"image": {
|
|
54
|
+
"id": null,
|
|
55
|
+
"alt": null,
|
|
56
|
+
"name": "",
|
|
57
|
+
"focus": null,
|
|
58
|
+
"title": null,
|
|
59
|
+
"source": null,
|
|
60
|
+
"filename": "",
|
|
61
|
+
"copyright": null,
|
|
62
|
+
"fieldtype": "asset",
|
|
63
|
+
"meta_data": {}
|
|
64
|
+
},
|
|
65
|
+
"richtext": {
|
|
66
|
+
"type": "doc",
|
|
67
|
+
"content": [
|
|
68
|
+
{
|
|
69
|
+
"type": "paragraph"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"component": "page",
|
|
74
|
+
"reference": "ca1552f4-ebf6-4e86-adb3-9c525c35f25a",
|
|
75
|
+
"references": [],
|
|
76
|
+
"multi_option": []
|
|
77
|
+
},
|
|
78
|
+
"published": true,
|
|
79
|
+
"slug": "home",
|
|
80
|
+
"path": null,
|
|
81
|
+
"full_slug": "home",
|
|
82
|
+
"default_root": null,
|
|
83
|
+
"disble_fe_editor": false,
|
|
84
|
+
"disable_fe_editor": false,
|
|
85
|
+
"parent": null,
|
|
86
|
+
"is_startpage": false,
|
|
87
|
+
"unpublished_changes": true,
|
|
88
|
+
"meta_data": null,
|
|
89
|
+
"imported_at": null,
|
|
90
|
+
"pinned": false,
|
|
91
|
+
"breadcrumbs": [],
|
|
92
|
+
"publish_at": null,
|
|
93
|
+
"expire_at": null,
|
|
94
|
+
"first_published_at": "2024-08-15T10:11:20.942Z",
|
|
95
|
+
"last_author": {
|
|
96
|
+
"id": 197040,
|
|
97
|
+
"userid": "g.buttinger@adwerba.at",
|
|
98
|
+
"friendly_name": "Gerald Buttinger"
|
|
99
|
+
},
|
|
100
|
+
"last_author_id": 197040,
|
|
101
|
+
"user_ids": [],
|
|
102
|
+
"space_role_ids": [],
|
|
103
|
+
"translated_slugs": [],
|
|
104
|
+
"localized_paths": [],
|
|
105
|
+
"position": 0,
|
|
106
|
+
"translated_stories": [],
|
|
107
|
+
"can_not_view": false,
|
|
108
|
+
"is_scheduled": null,
|
|
109
|
+
"scheduled_dates": null,
|
|
110
|
+
"ideas": [],
|
|
111
|
+
"stage": {
|
|
112
|
+
"workflow_id": 68154,
|
|
113
|
+
"workflow_stage_id": 578771,
|
|
114
|
+
"story_id": 522674929,
|
|
115
|
+
"created_at": "2024-10-25T08:04:09.640Z"
|
|
116
|
+
},
|
|
117
|
+
"favourite_for_user_ids": []
|
|
118
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "no-reference",
|
|
3
|
+
"parent_id": 0,
|
|
4
|
+
"group_id": "89a05781-266e-4562-bf71-8342c9201d10",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-10-25T08:30:40.619Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T08:32:48.717Z",
|
|
11
|
+
"published_at": null,
|
|
12
|
+
"id": 569104997,
|
|
13
|
+
"uuid": "f43c7c9f-22c2-4bd9-a3e4-3f3a204e4cad",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "8127698d-346f-491f-8e51-3969724156fb",
|
|
17
|
+
"body": [
|
|
18
|
+
{
|
|
19
|
+
"_uid": "10868157-a135-443b-b1b6-9069e5b3ad47",
|
|
20
|
+
"headline": "Hello world!",
|
|
21
|
+
"component": "teaser"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"_uid": "624a8c0b-b1a4-47e5-82c1-9b17c1510b22",
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"_uid": "69aefccd-6f0a-4dee-af41-337e9cf31bae",
|
|
28
|
+
"name": "Feature 1",
|
|
29
|
+
"component": "feature"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"_uid": "ebe62594-559c-429f-af41-9fa000b0532b",
|
|
33
|
+
"name": "Feature 2",
|
|
34
|
+
"component": "feature"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"_uid": "82d5149c-8cf5-462b-89c0-2481a2265b46",
|
|
38
|
+
"name": "Feature 3",
|
|
39
|
+
"component": "feature"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"component": "grid"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"test": "value",
|
|
46
|
+
"image": {
|
|
47
|
+
"id": null,
|
|
48
|
+
"alt": null,
|
|
49
|
+
"name": "",
|
|
50
|
+
"focus": null,
|
|
51
|
+
"title": null,
|
|
52
|
+
"source": null,
|
|
53
|
+
"filename": "",
|
|
54
|
+
"copyright": null,
|
|
55
|
+
"fieldtype": "asset",
|
|
56
|
+
"meta_data": {}
|
|
57
|
+
},
|
|
58
|
+
"component": "page",
|
|
59
|
+
"reference": "892a6960-a311-4b19-9d73-e458e582cc50"
|
|
60
|
+
},
|
|
61
|
+
"published": false,
|
|
62
|
+
"slug": "no-reference",
|
|
63
|
+
"path": null,
|
|
64
|
+
"full_slug": "no-reference",
|
|
65
|
+
"default_root": null,
|
|
66
|
+
"disble_fe_editor": false,
|
|
67
|
+
"disable_fe_editor": false,
|
|
68
|
+
"parent": null,
|
|
69
|
+
"is_startpage": false,
|
|
70
|
+
"unpublished_changes": true,
|
|
71
|
+
"meta_data": null,
|
|
72
|
+
"imported_at": null,
|
|
73
|
+
"pinned": false,
|
|
74
|
+
"breadcrumbs": [],
|
|
75
|
+
"publish_at": null,
|
|
76
|
+
"expire_at": null,
|
|
77
|
+
"first_published_at": null,
|
|
78
|
+
"last_author": {
|
|
79
|
+
"id": 197040,
|
|
80
|
+
"userid": "g.buttinger@adwerba.at",
|
|
81
|
+
"friendly_name": "Gerald Buttinger"
|
|
82
|
+
},
|
|
83
|
+
"last_author_id": 197040,
|
|
84
|
+
"user_ids": [],
|
|
85
|
+
"space_role_ids": [],
|
|
86
|
+
"translated_slugs": [],
|
|
87
|
+
"localized_paths": [],
|
|
88
|
+
"position": 0,
|
|
89
|
+
"translated_stories": [],
|
|
90
|
+
"can_not_view": false,
|
|
91
|
+
"is_scheduled": null,
|
|
92
|
+
"scheduled_dates": null,
|
|
93
|
+
"ideas": [],
|
|
94
|
+
"stage": null,
|
|
95
|
+
"favourite_for_user_ids": []
|
|
96
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "link-reference",
|
|
3
|
+
"parent_id": null,
|
|
4
|
+
"group_id": "069e3728-e8b8-44fa-942d-6d59e50a247e",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-10-25T08:43:50.186Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T09:11:52.617Z",
|
|
11
|
+
"published_at": null,
|
|
12
|
+
"id": 569109297,
|
|
13
|
+
"uuid": "701448d9-6c5f-4e5f-ad68-a536cb5561fc",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "586a5908-0b7c-43e0-bac9-890a15314720",
|
|
17
|
+
"body": [],
|
|
18
|
+
"link": {
|
|
19
|
+
"id": "ca1552f4-ebf6-4e86-adb3-9c525c35f25a",
|
|
20
|
+
"url": "",
|
|
21
|
+
"linktype": "story",
|
|
22
|
+
"fieldtype": "multilink",
|
|
23
|
+
"cached_url": "test"
|
|
24
|
+
},
|
|
25
|
+
"test": "",
|
|
26
|
+
"image": {
|
|
27
|
+
"id": null,
|
|
28
|
+
"alt": null,
|
|
29
|
+
"name": "",
|
|
30
|
+
"focus": null,
|
|
31
|
+
"title": null,
|
|
32
|
+
"source": null,
|
|
33
|
+
"filename": "",
|
|
34
|
+
"copyright": null,
|
|
35
|
+
"fieldtype": "asset",
|
|
36
|
+
"meta_data": {}
|
|
37
|
+
},
|
|
38
|
+
"richtext": {
|
|
39
|
+
"type": "doc",
|
|
40
|
+
"content": [
|
|
41
|
+
{
|
|
42
|
+
"type": "paragraph"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"component": "page",
|
|
47
|
+
"reference": "",
|
|
48
|
+
"references": [],
|
|
49
|
+
"multi_option": []
|
|
50
|
+
},
|
|
51
|
+
"published": false,
|
|
52
|
+
"slug": "link-reference",
|
|
53
|
+
"path": null,
|
|
54
|
+
"full_slug": "link-reference",
|
|
55
|
+
"default_root": null,
|
|
56
|
+
"disble_fe_editor": false,
|
|
57
|
+
"disable_fe_editor": false,
|
|
58
|
+
"parent": null,
|
|
59
|
+
"is_startpage": false,
|
|
60
|
+
"unpublished_changes": true,
|
|
61
|
+
"meta_data": null,
|
|
62
|
+
"imported_at": null,
|
|
63
|
+
"pinned": false,
|
|
64
|
+
"breadcrumbs": [],
|
|
65
|
+
"publish_at": null,
|
|
66
|
+
"expire_at": null,
|
|
67
|
+
"first_published_at": null,
|
|
68
|
+
"last_author": {
|
|
69
|
+
"id": 197040,
|
|
70
|
+
"userid": "g.buttinger@adwerba.at",
|
|
71
|
+
"friendly_name": "Gerald Buttinger"
|
|
72
|
+
},
|
|
73
|
+
"last_author_id": 197040,
|
|
74
|
+
"user_ids": [],
|
|
75
|
+
"space_role_ids": [],
|
|
76
|
+
"translated_slugs": [],
|
|
77
|
+
"localized_paths": [],
|
|
78
|
+
"position": -10,
|
|
79
|
+
"translated_stories": [],
|
|
80
|
+
"can_not_view": false,
|
|
81
|
+
"is_scheduled": null,
|
|
82
|
+
"scheduled_dates": null,
|
|
83
|
+
"ideas": [],
|
|
84
|
+
"stage": null,
|
|
85
|
+
"favourite_for_user_ids": []
|
|
86
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rt-link-reference",
|
|
3
|
+
"parent_id": null,
|
|
4
|
+
"group_id": "90d55567-6544-4cb2-9710-a9cc0270175c",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-10-25T08:44:29.764Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T09:11:51.787Z",
|
|
11
|
+
"published_at": null,
|
|
12
|
+
"id": 569110113,
|
|
13
|
+
"uuid": "1a86dc79-002d-4877-8c8b-63c1f77253dd",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "c5feedec-d0d0-4c2e-bab4-8240cd03b965",
|
|
17
|
+
"body": [],
|
|
18
|
+
"link": {
|
|
19
|
+
"id": "",
|
|
20
|
+
"url": "",
|
|
21
|
+
"linktype": "story",
|
|
22
|
+
"fieldtype": "multilink",
|
|
23
|
+
"cached_url": ""
|
|
24
|
+
},
|
|
25
|
+
"test": "",
|
|
26
|
+
"image": {
|
|
27
|
+
"id": null,
|
|
28
|
+
"alt": null,
|
|
29
|
+
"name": "",
|
|
30
|
+
"focus": null,
|
|
31
|
+
"title": null,
|
|
32
|
+
"source": null,
|
|
33
|
+
"filename": "",
|
|
34
|
+
"copyright": null,
|
|
35
|
+
"fieldtype": "asset",
|
|
36
|
+
"meta_data": {}
|
|
37
|
+
},
|
|
38
|
+
"richtext": {
|
|
39
|
+
"type": "doc",
|
|
40
|
+
"content": [
|
|
41
|
+
{
|
|
42
|
+
"type": "paragraph",
|
|
43
|
+
"content": [
|
|
44
|
+
{
|
|
45
|
+
"text": "Lorem ",
|
|
46
|
+
"type": "text"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"text": "Link",
|
|
50
|
+
"type": "text",
|
|
51
|
+
"marks": [
|
|
52
|
+
{
|
|
53
|
+
"type": "link",
|
|
54
|
+
"attrs": {
|
|
55
|
+
"href": "/test",
|
|
56
|
+
"uuid": "ca1552f4-ebf6-4e86-adb3-9c525c35f25a",
|
|
57
|
+
"anchor": null,
|
|
58
|
+
"target": "_self",
|
|
59
|
+
"linktype": "story"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"text": " Ipsum",
|
|
66
|
+
"type": "text"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"component": "page",
|
|
73
|
+
"reference": "",
|
|
74
|
+
"references": [],
|
|
75
|
+
"multi_option": []
|
|
76
|
+
},
|
|
77
|
+
"published": false,
|
|
78
|
+
"slug": "rt-link-reference",
|
|
79
|
+
"path": null,
|
|
80
|
+
"full_slug": "rt-link-reference",
|
|
81
|
+
"default_root": null,
|
|
82
|
+
"disble_fe_editor": false,
|
|
83
|
+
"disable_fe_editor": false,
|
|
84
|
+
"parent": null,
|
|
85
|
+
"is_startpage": false,
|
|
86
|
+
"unpublished_changes": true,
|
|
87
|
+
"meta_data": null,
|
|
88
|
+
"imported_at": null,
|
|
89
|
+
"pinned": false,
|
|
90
|
+
"breadcrumbs": [],
|
|
91
|
+
"publish_at": null,
|
|
92
|
+
"expire_at": null,
|
|
93
|
+
"first_published_at": null,
|
|
94
|
+
"last_author": {
|
|
95
|
+
"id": 197040,
|
|
96
|
+
"userid": "g.buttinger@adwerba.at",
|
|
97
|
+
"friendly_name": "Gerald Buttinger"
|
|
98
|
+
},
|
|
99
|
+
"last_author_id": 197040,
|
|
100
|
+
"user_ids": [],
|
|
101
|
+
"space_role_ids": [],
|
|
102
|
+
"translated_slugs": [],
|
|
103
|
+
"localized_paths": [],
|
|
104
|
+
"position": -20,
|
|
105
|
+
"translated_stories": [],
|
|
106
|
+
"can_not_view": false,
|
|
107
|
+
"is_scheduled": null,
|
|
108
|
+
"scheduled_dates": null,
|
|
109
|
+
"ideas": [],
|
|
110
|
+
"stage": null,
|
|
111
|
+
"favourite_for_user_ids": []
|
|
112
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "multi-option-reference",
|
|
3
|
+
"parent_id": null,
|
|
4
|
+
"group_id": "599ea0f6-5730-4e16-afaf-71b8961882e5",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-10-25T08:45:41.725Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T09:11:50.895Z",
|
|
11
|
+
"published_at": null,
|
|
12
|
+
"id": 569112436,
|
|
13
|
+
"uuid": "24269166-44a0-4df4-8097-611999fddc9d",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "09c3f02c-11cf-4965-8767-10b86ad1d3e9",
|
|
17
|
+
"body": [],
|
|
18
|
+
"link": {
|
|
19
|
+
"id": "",
|
|
20
|
+
"url": "",
|
|
21
|
+
"linktype": "story",
|
|
22
|
+
"fieldtype": "multilink",
|
|
23
|
+
"cached_url": ""
|
|
24
|
+
},
|
|
25
|
+
"test": "",
|
|
26
|
+
"image": {
|
|
27
|
+
"id": null,
|
|
28
|
+
"alt": null,
|
|
29
|
+
"name": "",
|
|
30
|
+
"focus": null,
|
|
31
|
+
"title": null,
|
|
32
|
+
"source": null,
|
|
33
|
+
"filename": "",
|
|
34
|
+
"copyright": null,
|
|
35
|
+
"fieldtype": "asset",
|
|
36
|
+
"meta_data": {}
|
|
37
|
+
},
|
|
38
|
+
"richtext": {
|
|
39
|
+
"type": "doc",
|
|
40
|
+
"content": [
|
|
41
|
+
{
|
|
42
|
+
"type": "paragraph"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"component": "page",
|
|
47
|
+
"reference": "",
|
|
48
|
+
"references": [],
|
|
49
|
+
"multi_option": [
|
|
50
|
+
"892a6960-a311-4b19-9d73-e458e582cc50",
|
|
51
|
+
"ca1552f4-ebf6-4e86-adb3-9c525c35f25a"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"published": false,
|
|
55
|
+
"slug": "multi-option-reference",
|
|
56
|
+
"path": null,
|
|
57
|
+
"full_slug": "multi-option-reference",
|
|
58
|
+
"default_root": null,
|
|
59
|
+
"disble_fe_editor": false,
|
|
60
|
+
"disable_fe_editor": false,
|
|
61
|
+
"parent": null,
|
|
62
|
+
"is_startpage": false,
|
|
63
|
+
"unpublished_changes": true,
|
|
64
|
+
"meta_data": null,
|
|
65
|
+
"imported_at": null,
|
|
66
|
+
"pinned": false,
|
|
67
|
+
"breadcrumbs": [],
|
|
68
|
+
"publish_at": null,
|
|
69
|
+
"expire_at": null,
|
|
70
|
+
"first_published_at": null,
|
|
71
|
+
"last_author": {
|
|
72
|
+
"id": 197040,
|
|
73
|
+
"userid": "g.buttinger@adwerba.at",
|
|
74
|
+
"friendly_name": "Gerald Buttinger"
|
|
75
|
+
},
|
|
76
|
+
"last_author_id": 197040,
|
|
77
|
+
"user_ids": [],
|
|
78
|
+
"space_role_ids": [],
|
|
79
|
+
"translated_slugs": [],
|
|
80
|
+
"localized_paths": [],
|
|
81
|
+
"position": -30,
|
|
82
|
+
"translated_stories": [],
|
|
83
|
+
"can_not_view": false,
|
|
84
|
+
"is_scheduled": null,
|
|
85
|
+
"scheduled_dates": null,
|
|
86
|
+
"ideas": [],
|
|
87
|
+
"stage": null,
|
|
88
|
+
"favourite_for_user_ids": []
|
|
89
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "multi-reference",
|
|
3
|
+
"parent_id": null,
|
|
4
|
+
"group_id": "84361fa6-02f7-4688-bf4f-9007a07f23d2",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-10-25T08:46:40.758Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T09:11:50.576Z",
|
|
11
|
+
"published_at": null,
|
|
12
|
+
"id": 569114646,
|
|
13
|
+
"uuid": "550036eb-c45a-4abb-bf8b-45a0831f4d4c",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "d36b7e99-ef42-43e1-b231-a4b525a09e84",
|
|
17
|
+
"body": [],
|
|
18
|
+
"link": {
|
|
19
|
+
"id": "",
|
|
20
|
+
"url": "",
|
|
21
|
+
"linktype": "story",
|
|
22
|
+
"fieldtype": "multilink",
|
|
23
|
+
"cached_url": ""
|
|
24
|
+
},
|
|
25
|
+
"test": "",
|
|
26
|
+
"image": {
|
|
27
|
+
"id": null,
|
|
28
|
+
"alt": null,
|
|
29
|
+
"name": "",
|
|
30
|
+
"focus": null,
|
|
31
|
+
"title": null,
|
|
32
|
+
"source": null,
|
|
33
|
+
"filename": "",
|
|
34
|
+
"copyright": null,
|
|
35
|
+
"fieldtype": "asset",
|
|
36
|
+
"meta_data": {}
|
|
37
|
+
},
|
|
38
|
+
"richtext": {
|
|
39
|
+
"type": "doc",
|
|
40
|
+
"content": [
|
|
41
|
+
{
|
|
42
|
+
"type": "paragraph"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"component": "page",
|
|
47
|
+
"reference": "",
|
|
48
|
+
"references": [
|
|
49
|
+
"892a6960-a311-4b19-9d73-e458e582cc50",
|
|
50
|
+
"ca1552f4-ebf6-4e86-adb3-9c525c35f25a"
|
|
51
|
+
],
|
|
52
|
+
"multi_option": []
|
|
53
|
+
},
|
|
54
|
+
"published": false,
|
|
55
|
+
"slug": "multi-reference",
|
|
56
|
+
"path": null,
|
|
57
|
+
"full_slug": "multi-reference",
|
|
58
|
+
"default_root": null,
|
|
59
|
+
"disble_fe_editor": false,
|
|
60
|
+
"disable_fe_editor": false,
|
|
61
|
+
"parent": null,
|
|
62
|
+
"is_startpage": false,
|
|
63
|
+
"unpublished_changes": true,
|
|
64
|
+
"meta_data": null,
|
|
65
|
+
"imported_at": null,
|
|
66
|
+
"pinned": false,
|
|
67
|
+
"breadcrumbs": [],
|
|
68
|
+
"publish_at": null,
|
|
69
|
+
"expire_at": null,
|
|
70
|
+
"first_published_at": null,
|
|
71
|
+
"last_author": {
|
|
72
|
+
"id": 197040,
|
|
73
|
+
"userid": "g.buttinger@adwerba.at",
|
|
74
|
+
"friendly_name": "Gerald Buttinger"
|
|
75
|
+
},
|
|
76
|
+
"last_author_id": 197040,
|
|
77
|
+
"user_ids": [],
|
|
78
|
+
"space_role_ids": [],
|
|
79
|
+
"translated_slugs": [],
|
|
80
|
+
"localized_paths": [],
|
|
81
|
+
"position": -40,
|
|
82
|
+
"translated_stories": [],
|
|
83
|
+
"can_not_view": false,
|
|
84
|
+
"is_scheduled": null,
|
|
85
|
+
"scheduled_dates": null,
|
|
86
|
+
"ideas": [],
|
|
87
|
+
"stage": null,
|
|
88
|
+
"favourite_for_user_ids": []
|
|
89
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "test",
|
|
3
|
+
"parent_id": null,
|
|
4
|
+
"group_id": "0648e5ed-2faf-4bef-9a43-9af9c9e332a9",
|
|
5
|
+
"alternates": [],
|
|
6
|
+
"created_at": "2024-10-25T09:11:49.659Z",
|
|
7
|
+
"deleted_at": null,
|
|
8
|
+
"sort_by_date": null,
|
|
9
|
+
"tag_list": [],
|
|
10
|
+
"updated_at": "2024-10-25T09:11:49.659Z",
|
|
11
|
+
"published_at": null,
|
|
12
|
+
"id": 569128208,
|
|
13
|
+
"uuid": "ca1552f4-ebf6-4e86-adb3-9c525c35f25a",
|
|
14
|
+
"is_folder": false,
|
|
15
|
+
"content": {
|
|
16
|
+
"_uid": "aec95dde-80c3-46ac-a5b9-46b4b90ff6c8",
|
|
17
|
+
"body": [],
|
|
18
|
+
"test": "",
|
|
19
|
+
"image": {
|
|
20
|
+
"id": 16640624,
|
|
21
|
+
"alt": "",
|
|
22
|
+
"name": "",
|
|
23
|
+
"focus": "",
|
|
24
|
+
"title": "",
|
|
25
|
+
"source": "",
|
|
26
|
+
"filename": "https://a.storyblok.com/f/296932/232x244/945a3b296d/test.png",
|
|
27
|
+
"copyright": "",
|
|
28
|
+
"fieldtype": "asset",
|
|
29
|
+
"meta_data": {
|
|
30
|
+
"alt": "",
|
|
31
|
+
"title": "",
|
|
32
|
+
"source": "",
|
|
33
|
+
"copyright": ""
|
|
34
|
+
},
|
|
35
|
+
"is_external_url": false
|
|
36
|
+
},
|
|
37
|
+
"component": "page",
|
|
38
|
+
"reference": ""
|
|
39
|
+
},
|
|
40
|
+
"published": false,
|
|
41
|
+
"slug": "test",
|
|
42
|
+
"path": null,
|
|
43
|
+
"full_slug": "test",
|
|
44
|
+
"default_root": null,
|
|
45
|
+
"disble_fe_editor": false,
|
|
46
|
+
"disable_fe_editor": false,
|
|
47
|
+
"parent": null,
|
|
48
|
+
"is_startpage": false,
|
|
49
|
+
"unpublished_changes": false,
|
|
50
|
+
"meta_data": null,
|
|
51
|
+
"imported_at": null,
|
|
52
|
+
"pinned": false,
|
|
53
|
+
"breadcrumbs": [],
|
|
54
|
+
"publish_at": null,
|
|
55
|
+
"expire_at": null,
|
|
56
|
+
"first_published_at": "2024-08-15T10:09:33.782Z",
|
|
57
|
+
"last_author": {
|
|
58
|
+
"id": 197040,
|
|
59
|
+
"userid": "g.buttinger@adwerba.at",
|
|
60
|
+
"friendly_name": "Gerald Buttinger"
|
|
61
|
+
},
|
|
62
|
+
"last_author_id": 197040,
|
|
63
|
+
"user_ids": [],
|
|
64
|
+
"space_role_ids": [],
|
|
65
|
+
"translated_slugs": [],
|
|
66
|
+
"localized_paths": [],
|
|
67
|
+
"position": 0,
|
|
68
|
+
"translated_stories": [],
|
|
69
|
+
"can_not_view": false,
|
|
70
|
+
"is_scheduled": null,
|
|
71
|
+
"scheduled_dates": null,
|
|
72
|
+
"ideas": [],
|
|
73
|
+
"stage": null,
|
|
74
|
+
"favourite_for_user_ids": []
|
|
75
|
+
}
|
|
Binary file
|
package/README.md
CHANGED
|
@@ -83,51 +83,52 @@ Call `npx storyblok-backup` with the following options:
|
|
|
83
83
|
#### Backup options
|
|
84
84
|
|
|
85
85
|
```text
|
|
86
|
-
--token <token>
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
--space <space_id>
|
|
91
|
-
|
|
92
|
-
--region <region>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
--types <types>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
--
|
|
123
|
-
--
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
--
|
|
127
|
-
--zip
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
--
|
|
86
|
+
--token <token> (required) Personal OAuth access token created
|
|
87
|
+
in the account settings of a Stoyblok user.
|
|
88
|
+
(NOT the Access Token of a Space!)
|
|
89
|
+
Alternatively, you can set the STORYBLOK_OAUTH_TOKEN environment variable.
|
|
90
|
+
--space <space_id> (required) ID of the space to backup
|
|
91
|
+
Alternatively, you can set the STORYBLOK_SPACE_ID environment variable.
|
|
92
|
+
--region <region> Region of the space. Possible values are:
|
|
93
|
+
- 'eu' (default): EU
|
|
94
|
+
- 'us': US
|
|
95
|
+
- 'ap': Australia
|
|
96
|
+
- 'ca': Canada
|
|
97
|
+
- 'cn': China
|
|
98
|
+
Alternatively, you can set the STORYBLOK_REGION environment variable.
|
|
99
|
+
--types <types> Comma separated list of resource-types to backup (default=all).
|
|
100
|
+
Possible values are:
|
|
101
|
+
- 'stories'
|
|
102
|
+
- 'collaborators'
|
|
103
|
+
- 'components'
|
|
104
|
+
- 'component-groups'
|
|
105
|
+
- 'assets'
|
|
106
|
+
- 'asset-folders'
|
|
107
|
+
- 'internal-tags'
|
|
108
|
+
- 'datasources'
|
|
109
|
+
- 'space'
|
|
110
|
+
- 'space-roles'
|
|
111
|
+
- 'tasks'
|
|
112
|
+
- 'activities'
|
|
113
|
+
- 'presets'
|
|
114
|
+
- 'field-types'
|
|
115
|
+
- 'webhooks'
|
|
116
|
+
- 'workflow-stages'
|
|
117
|
+
- 'workflow-stage-changes'
|
|
118
|
+
- 'workflows'
|
|
119
|
+
- 'releases'
|
|
120
|
+
- 'pipeline-branches'
|
|
121
|
+
- 'access-tokens'
|
|
122
|
+
--omit-types <types> Comma separated list of resource-types to omit.
|
|
123
|
+
--with-asset-files Downloads all files (assets) of the space (default=false).
|
|
124
|
+
--output-dir <dir> Directory to write the backup to (default=./.output)
|
|
125
|
+
(ATTENTION: Will fail if the directory already exists!)
|
|
126
|
+
--force Force deletion and recreation of existing output directory.
|
|
127
|
+
--create-zip Create a zip file of the backup (default=false).
|
|
128
|
+
--zip-prefix <dir> Prefix for the zip file. (default='backup').
|
|
129
|
+
(The suffix will automatically be the current date.)
|
|
130
|
+
--verbose Will show detailed output for every file written.
|
|
131
|
+
--help Show this help
|
|
131
132
|
```
|
|
132
133
|
|
|
133
134
|
OAuth token, space-id and region can be set via environment variables. You can also use a `.env` file in your project root for this (see `.env.example`).
|
|
@@ -301,7 +302,7 @@ Call `npx storyblok-restore` with the following options:
|
|
|
301
302
|
- 'ca': Canada
|
|
302
303
|
- 'cn': China
|
|
303
304
|
Alternatively, you can set the STORYBLOK_REGION environment variable.
|
|
304
|
-
--
|
|
305
|
+
--type <type> (required) Type of resource to restore. Possible values are:
|
|
305
306
|
- 'story'
|
|
306
307
|
- 'collaborator'
|
|
307
308
|
- 'component'
|
|
@@ -321,14 +322,17 @@ Call `npx storyblok-restore` with the following options:
|
|
|
321
322
|
- 'release'
|
|
322
323
|
- 'pipeline-branch'
|
|
323
324
|
- 'access-token'
|
|
324
|
-
--
|
|
325
|
-
--
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
--
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
325
|
+
--file <file> (required) File of resource to restore.
|
|
326
|
+
--publish Perform a publish after restore of a story (default=false).
|
|
327
|
+
--create Create a new resource instead of updating (default=false).
|
|
328
|
+
Not supported for assets.
|
|
329
|
+
--propagate Propagate new story UUID to referencing stories (default=false).
|
|
330
|
+
Usable with create and stories. A create results in a new ID and UUID.
|
|
331
|
+
This option will update all stories referencing the old
|
|
332
|
+
UUID (as stated in the backup-json) with the new one.
|
|
333
|
+
--id <file> (required if type=datasource-entries and create is set)
|
|
334
|
+
ID of datasource the entries belong to.
|
|
335
|
+
--verbose Will show detailed result of the restore process.
|
|
332
336
|
--help Show this help
|
|
333
337
|
```
|
|
334
338
|
|
package/bin/storyblok-backup.mjs
CHANGED
|
@@ -44,31 +44,32 @@ if ('help' in args) {
|
|
|
44
44
|
$ npx storyblok-backup
|
|
45
45
|
|
|
46
46
|
OPTIONS
|
|
47
|
-
--token <token>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
--space <space_id>
|
|
52
|
-
|
|
53
|
-
--region <region>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
--types <types>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
--
|
|
64
|
-
--
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
--
|
|
68
|
-
--zip
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
--
|
|
47
|
+
--token <token> (required) Personal OAuth access token created
|
|
48
|
+
in the account settings of a Stoyblok user.
|
|
49
|
+
(NOT the Access Token of a Space!)
|
|
50
|
+
Alternatively, you can set the STORYBLOK_OAUTH_TOKEN environment variable.
|
|
51
|
+
--space <space_id> (required) ID of the space to backup
|
|
52
|
+
Alternatively, you can set the STORYBLOK_SPACE_ID environment variable.
|
|
53
|
+
--region <region> Region of the space. Possible values are:
|
|
54
|
+
- 'eu' (default): EU
|
|
55
|
+
- 'us': US
|
|
56
|
+
- 'ap': Australia
|
|
57
|
+
- 'ca': Canada
|
|
58
|
+
- 'cn': China
|
|
59
|
+
Alternatively, you can set the STORYBLOK_REGION environment variable.
|
|
60
|
+
--types <types> Comma separated list of resource-types to backup (default=all).
|
|
61
|
+
Possible values are:
|
|
62
|
+
- '${resourceTypes.join("'\n - '")}'
|
|
63
|
+
--omit-types <types> Comma separated list of resource-types to omit.
|
|
64
|
+
--with-asset-files Downloads all files (assets) of the space (default=false).
|
|
65
|
+
--output-dir <dir> Directory to write the backup to (default=./.output)
|
|
66
|
+
(ATTENTION: Will fail if the directory already exists!)
|
|
67
|
+
--force Force deletion and recreation of existing output directory.
|
|
68
|
+
--create-zip Create a zip file of the backup (default=false).
|
|
69
|
+
--zip-prefix <dir> Prefix for the zip file. (default='backup').
|
|
70
|
+
(The suffix will automatically be the current date.)
|
|
71
|
+
--verbose Will show detailed output for every file written.
|
|
72
|
+
--help Show this help
|
|
72
73
|
|
|
73
74
|
MINIMAL EXAMPLE
|
|
74
75
|
$ npx storyblok-backup --token 1234567890abcdef --space 12345
|
|
@@ -79,6 +80,7 @@ MAXIMAL EXAMPLE
|
|
|
79
80
|
--space 12345 \\
|
|
80
81
|
--region ap \\
|
|
81
82
|
--types "stories,components" \\
|
|
83
|
+
--omit-types "activities" \\
|
|
82
84
|
--with-asset-files \\
|
|
83
85
|
--output-dir ./my-dir \\
|
|
84
86
|
--force \\
|
|
@@ -128,6 +130,11 @@ if ('types' in args) {
|
|
|
128
130
|
resourceTypes = typesToBackup
|
|
129
131
|
}
|
|
130
132
|
|
|
133
|
+
if ('omit-types' in args) {
|
|
134
|
+
const typesToOmit = args['omit-types'].split(',')
|
|
135
|
+
resourceTypes = resourceTypes.filter((type) => !typesToOmit.includes(type))
|
|
136
|
+
}
|
|
137
|
+
|
|
131
138
|
const verbose = 'verbose' in args
|
|
132
139
|
|
|
133
140
|
const outputDir = args['output-dir'] || './.output'
|
|
@@ -156,11 +163,17 @@ const fileName =
|
|
|
156
163
|
|
|
157
164
|
const filePath = `${outputDir}/${fileName}`
|
|
158
165
|
|
|
166
|
+
// Output General information
|
|
167
|
+
console.log('')
|
|
159
168
|
console.log(`Creating backup for space ${spaceId}:`)
|
|
160
|
-
console.log(
|
|
169
|
+
console.log(`- output dir: ${outputDir}`)
|
|
161
170
|
if ('create-zip' in args) {
|
|
162
|
-
console.log(
|
|
171
|
+
console.log(`- output zip: ${filePath}`)
|
|
163
172
|
}
|
|
173
|
+
console.log(`- resource types: ${resourceTypes.join(', ')}`)
|
|
174
|
+
console.log(`- with asset files: ${'with-asset-files' in args ? 'yes' : 'no'}`)
|
|
175
|
+
console.log(`- force output folder: ${'force' in args ? 'yes' : 'no'}`)
|
|
176
|
+
console.log('')
|
|
164
177
|
|
|
165
178
|
// Init Management API
|
|
166
179
|
const StoryblokMAPI = new StoryblokClient({
|
|
@@ -179,6 +192,11 @@ resourceTypes.forEach(
|
|
|
179
192
|
(resource) => resource === 'space' || fs.mkdirSync(`${backupDir}/${resource}`)
|
|
180
193
|
)
|
|
181
194
|
|
|
195
|
+
// Create separate directory for asset-files
|
|
196
|
+
if (resourceTypes.includes('assets') && 'with-asset-files' in args) {
|
|
197
|
+
fs.mkdirSync(`${backupDir}/asset-files`)
|
|
198
|
+
}
|
|
199
|
+
|
|
182
200
|
// Function to perform a default fetch
|
|
183
201
|
const defaultFetch = async (endpoint, type, fileField, fileFieldObject) => {
|
|
184
202
|
if (resourceTypes.includes(type)) {
|
|
@@ -282,7 +300,7 @@ if (resourceTypes.includes('assets')) {
|
|
|
282
300
|
if ('with-asset-files' in args) {
|
|
283
301
|
const fileExtension = asset.filename.split('.').at(-1)
|
|
284
302
|
const fileName = asset.id + '.' + fileExtension
|
|
285
|
-
await downloadFile('
|
|
303
|
+
await downloadFile('asset-files', fileName, asset.filename)
|
|
286
304
|
}
|
|
287
305
|
}
|
|
288
306
|
})
|
|
@@ -154,6 +154,19 @@ if (propagate && args.type !== 'story') {
|
|
|
154
154
|
process.exit(1)
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
+
// Output General information
|
|
158
|
+
console.log('')
|
|
159
|
+
console.log(`Restoring backup in space ${spaceId}:`)
|
|
160
|
+
console.log(`- resource type: ${args.type}`)
|
|
161
|
+
console.log(`- file: ${args.file}`)
|
|
162
|
+
if ('id' in args) {
|
|
163
|
+
console.log(`- datasource id: ${args.id}`)
|
|
164
|
+
}
|
|
165
|
+
console.log(`- mode: ${'create' in args ? 'create' : 'update'}`)
|
|
166
|
+
console.log(`- publish: ${'publish' in args ? 'yes' : 'no'}`)
|
|
167
|
+
console.log(`- propagate: ${'propagate' in args ? 'yes' : 'no'}`)
|
|
168
|
+
console.log('')
|
|
169
|
+
|
|
157
170
|
// Init Management API
|
|
158
171
|
const StoryblokMAPI = new StoryblokClient({
|
|
159
172
|
oauthToken: oauthToken,
|
package/package.json
CHANGED