diff --git a/src/mothership-app/migrations/1703950071_created_s3.js b/src/mothership-app/migrations/1703950071_created_s3.js
new file mode 100644
index 00000000..a0347002
--- /dev/null
+++ b/src/mothership-app/migrations/1703950071_created_s3.js
@@ -0,0 +1,113 @@
+///
+migrate((db) => {
+ const collection = new Collection({
+ "id": "7n6rny9w7n52mvi",
+ "created": "2023-12-30 15:27:51.880Z",
+ "updated": "2023-12-30 15:27:51.880Z",
+ "name": "s3",
+ "type": "base",
+ "system": false,
+ "schema": [
+ {
+ "system": false,
+ "id": "yvy0exvk",
+ "name": "instance",
+ "type": "relation",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "collectionId": "etae8tuiaxl6xfv",
+ "cascadeDelete": false,
+ "minSelect": null,
+ "maxSelect": 1,
+ "displayFields": null
+ }
+ },
+ {
+ "system": false,
+ "id": "kz6u1z1p",
+ "name": "endpoint",
+ "type": "text",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "min": null,
+ "max": null,
+ "pattern": ""
+ }
+ },
+ {
+ "system": false,
+ "id": "etcgfvgc",
+ "name": "access_key",
+ "type": "text",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "min": null,
+ "max": null,
+ "pattern": ""
+ }
+ },
+ {
+ "system": false,
+ "id": "fn8ulajr",
+ "name": "secret",
+ "type": "text",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "min": null,
+ "max": null,
+ "pattern": ""
+ }
+ },
+ {
+ "system": false,
+ "id": "kktzqpxi",
+ "name": "bucket",
+ "type": "text",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "min": null,
+ "max": null,
+ "pattern": ""
+ }
+ },
+ {
+ "system": false,
+ "id": "fysmrb1v",
+ "name": "region",
+ "type": "text",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "min": null,
+ "max": null,
+ "pattern": ""
+ }
+ }
+ ],
+ "indexes": [],
+ "listRule": null,
+ "viewRule": null,
+ "createRule": null,
+ "updateRule": null,
+ "deleteRule": null,
+ "options": {}
+ });
+
+ return Dao(db).saveCollection(collection);
+}, (db) => {
+ const dao = new Dao(db);
+ const collection = dao.findCollectionByNameOrId("7n6rny9w7n52mvi");
+
+ return dao.deleteCollection(collection);
+})
diff --git a/src/mothership-app/migrations/1703950205_updated_instances.js b/src/mothership-app/migrations/1703950205_updated_instances.js
new file mode 100644
index 00000000..3f204810
--- /dev/null
+++ b/src/mothership-app/migrations/1703950205_updated_instances.js
@@ -0,0 +1,33 @@
+///
+migrate((db) => {
+ const dao = new Dao(db)
+ const collection = dao.findCollectionByNameOrId("etae8tuiaxl6xfv")
+
+ // add
+ collection.schema.addField(new SchemaField({
+ "system": false,
+ "id": "k7nxxzdr",
+ "name": "s3",
+ "type": "relation",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "collectionId": "7n6rny9w7n52mvi",
+ "cascadeDelete": false,
+ "minSelect": null,
+ "maxSelect": 1,
+ "displayFields": null
+ }
+ }))
+
+ return dao.saveCollection(collection)
+}, (db) => {
+ const dao = new Dao(db)
+ const collection = dao.findCollectionByNameOrId("etae8tuiaxl6xfv")
+
+ // remove
+ collection.schema.removeField("k7nxxzdr")
+
+ return dao.saveCollection(collection)
+})
diff --git a/src/mothership-app/migrations/1703950246_updated_s3.js b/src/mothership-app/migrations/1703950246_updated_s3.js
new file mode 100644
index 00000000..f20662a6
--- /dev/null
+++ b/src/mothership-app/migrations/1703950246_updated_s3.js
@@ -0,0 +1,48 @@
+///
+migrate((db) => {
+ const dao = new Dao(db)
+ const collection = dao.findCollectionByNameOrId("7n6rny9w7n52mvi")
+
+ // update
+ collection.schema.addField(new SchemaField({
+ "system": false,
+ "id": "yvy0exvk",
+ "name": "instance",
+ "type": "relation",
+ "required": false,
+ "presentable": true,
+ "unique": false,
+ "options": {
+ "collectionId": "etae8tuiaxl6xfv",
+ "cascadeDelete": false,
+ "minSelect": null,
+ "maxSelect": 1,
+ "displayFields": null
+ }
+ }))
+
+ return dao.saveCollection(collection)
+}, (db) => {
+ const dao = new Dao(db)
+ const collection = dao.findCollectionByNameOrId("7n6rny9w7n52mvi")
+
+ // update
+ collection.schema.addField(new SchemaField({
+ "system": false,
+ "id": "yvy0exvk",
+ "name": "instance",
+ "type": "relation",
+ "required": false,
+ "presentable": false,
+ "unique": false,
+ "options": {
+ "collectionId": "etae8tuiaxl6xfv",
+ "cascadeDelete": false,
+ "minSelect": null,
+ "maxSelect": 1,
+ "displayFields": null
+ }
+ }))
+
+ return dao.saveCollection(collection)
+})