2886 lines
74 KiB
Go
2886 lines
74 KiB
Go
package migrations
|
|
|
|
import (
|
|
"github.com/pocketbase/pocketbase/core"
|
|
m "github.com/pocketbase/pocketbase/migrations"
|
|
)
|
|
|
|
func init() {
|
|
m.Register(func(app core.App) error {
|
|
jsonData := `[
|
|
{
|
|
"createRule": "@request.auth.id != \"\" && (@request.body.author = @request.auth.id)",
|
|
"deleteRule": "author = @request.auth.id ",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "wquvuytd",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "name",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "6kkucam1",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "description",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "8x74ba26",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "location",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "ehrmydva",
|
|
"name": "public",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "epgmtyxy",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "distance",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "5wxdt3aj",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "elevation_gain",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "xutbwpq4",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "elevation_loss",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "ukr9rqz4",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "duration",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "eqeqja1s",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "lat",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "y6dbfyw6",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "lon",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "aqbpyawe",
|
|
"maxSelect": 99,
|
|
"maxSize": 20971520,
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/vnd.mozilla.apng",
|
|
"image/png",
|
|
"image/webp",
|
|
"image/svg+xml",
|
|
"image/heic",
|
|
"video/mp4",
|
|
"video/webm",
|
|
"video/ogg"
|
|
],
|
|
"name": "photos",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "k8xdrsyv",
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"mimeTypes": null,
|
|
"name": "gpx",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"cascadeDelete": false,
|
|
"collectionId": "kjxvi8asj2igqwf",
|
|
"hidden": false,
|
|
"id": "b49obm5u",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "category",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "1utgul91",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": false,
|
|
"collectionId": "dd2l9a4vxpy2ni8",
|
|
"hidden": false,
|
|
"id": "e1lwowvd",
|
|
"maxSelect": 2147483647,
|
|
"minSelect": 0,
|
|
"name": "summit_logs",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": false,
|
|
"collectionId": "goeo2ubp103rzp9",
|
|
"hidden": false,
|
|
"id": "ppq2sist",
|
|
"maxSelect": 2147483647,
|
|
"minSelect": 0,
|
|
"name": "waypoints",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "k2giqyjq",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "thumbnail",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "dywtnynw",
|
|
"maxSelect": 1,
|
|
"name": "difficulty",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"easy",
|
|
"moderate",
|
|
"difficult"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "hovyvbtt",
|
|
"max": "",
|
|
"min": "",
|
|
"name": "date",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "date"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "sajmiuau",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "external_id",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "htr35nha",
|
|
"maxSelect": 1,
|
|
"name": "external_provider",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"strava",
|
|
"komoot"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "e864strfxo14pm4",
|
|
"indexes": [],
|
|
"listRule": "author = @request.auth.id || public = true || (@request.auth.id != \"\" && trail_share_via_trail.user ?= @request.auth.id)",
|
|
"name": "trails",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "author = @request.auth.id || (@request.auth.id != \"\" && trail_share_via_trail.trail = id && trail_share_via_trail.user ?= @request.auth.id && trail_share_via_trail.permission = \"edit\")",
|
|
"viewRule": "author = @request.auth.id || public = true || (@request.auth.id != \"\" && trail_share_via_trail.user ?= @request.auth.id)"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "38tbd8u4",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "name",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "64dsnxtb",
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"mimeTypes": null,
|
|
"name": "img",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "kjxvi8asj2igqwf",
|
|
"indexes": [],
|
|
"listRule": "",
|
|
"name": "categories",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": null,
|
|
"viewRule": ""
|
|
},
|
|
{
|
|
"createRule": "@request.auth.id != \"\"",
|
|
"deleteRule": "@request.auth.id != \"\" && ((@collection.trails.waypoints.id ?= id && @collection.trails.author = @request.auth.id) || author = @request.auth.id)",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "2yegzjtk",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "name",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "3xtcjtxv",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "description",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "ygotgxzy",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "lat",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "q0ygnxd2",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "lon",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "s1prb3fx",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "distance_from_start",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "rnjgm2tk",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "icon",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "tfhs3juh",
|
|
"maxSelect": 99,
|
|
"maxSize": 20971520,
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/png",
|
|
"image/vnd.mozilla.apng",
|
|
"image/webp",
|
|
"image/svg+xml",
|
|
"video/ogg",
|
|
"video/mp4",
|
|
"video/webm"
|
|
],
|
|
"name": "photos",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "8qbxrsd8",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "goeo2ubp103rzp9",
|
|
"indexes": [],
|
|
"listRule": "(@request.auth.id != \"\" && @collection.trails.waypoints.id ?= id && @collection.trails.author ?= @request.auth.id) || (@collection.trails.waypoints.id ?= id && @collection.trails.public ?= true) || \n(@collection.trail_share.trail.waypoints.id ?= id && @collection.trail_share.user ?= @request.auth.id) ||\n(author = @request.auth.id)",
|
|
"name": "waypoints",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "@request.auth.id != \"\" && ((@collection.trails.waypoints.id ?= id && @collection.trails.author = @request.auth.id) || author = @request.auth.id)",
|
|
"viewRule": "(@request.auth.id != \"\" && @collection.trails.waypoints.id ?= id && @collection.trails.author ?= @request.auth.id) || (@collection.trails.waypoints.id ?= id && @collection.trails.public ?= true) || \n(@collection.trail_share.trail.waypoints.id ?= id && @collection.trail_share.user ?= @request.auth.id) ||\n(author = @request.auth.id)"
|
|
},
|
|
{
|
|
"createRule": "@request.auth.id != \"\"",
|
|
"deleteRule": "@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && (@collection.trails.author ?= @request.auth.id) || (author = @request.auth.id)",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "gxq1yeld",
|
|
"max": "",
|
|
"min": "",
|
|
"name": "date",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "date"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "0ykzwuia",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "text",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "rfwmdcpt",
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"mimeTypes": null,
|
|
"name": "gpx",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "ixnksbkt",
|
|
"maxSelect": 99,
|
|
"maxSize": 20971520,
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/png",
|
|
"image/vnd.mozilla.apng",
|
|
"image/webp",
|
|
"image/svg+xml",
|
|
"image/heic",
|
|
"video/ogg",
|
|
"video/mp4",
|
|
"video/webm"
|
|
],
|
|
"name": "photos",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "jovws28m",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "distance",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "m2kndtwn",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "elevation_gain",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "uqqo9cws",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "elevation_loss",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "vwxjsrae",
|
|
"max": null,
|
|
"min": 0,
|
|
"name": "duration",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "r0mj3tkr",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "dd2l9a4vxpy2ni8",
|
|
"indexes": [],
|
|
"listRule": "(@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && @collection.trails.author ?= @request.auth.id) || (@collection.trails.summit_logs.id ?= id && @collection.trails.public ?= true) ||\n(@collection.trail_share.trail.summit_logs.id ?= id && @collection.trail_share.user ?= @request.auth.id) ||\n(author = @request.auth.id)",
|
|
"name": "summit_logs",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && (@collection.trails.author ?= @request.auth.id) || (author = @request.auth.id)",
|
|
"viewRule": "(@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && @collection.trails.author ?= @request.auth.id) || (@collection.trails.summit_logs.id ?= id && @collection.trails.public ?= true) || \n(@collection.trail_share.trail.summit_logs.id ?= id && @collection.trail_share.user ?= @request.auth.id) ||\n(author = @request.auth.id)"
|
|
},
|
|
{
|
|
"createRule": "@request.auth.id != \"\" && (@request.body.author = @request.auth.id)",
|
|
"deleteRule": "author = @request.auth.id ",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "0goi1ipa",
|
|
"max": 0,
|
|
"min": 1,
|
|
"name": "name",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "3v3pwnqn",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "description",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "decatj0h",
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"mimeTypes": [
|
|
"image/png",
|
|
"image/vnd.mozilla.apng",
|
|
"image/jpeg",
|
|
"image/webp",
|
|
"image/svg+xml"
|
|
],
|
|
"name": "avatar",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"cascadeDelete": false,
|
|
"collectionId": "e864strfxo14pm4",
|
|
"hidden": false,
|
|
"id": "jqtcrcnq",
|
|
"maxSelect": 2147483647,
|
|
"minSelect": 0,
|
|
"name": "trails",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "kwm6zdet",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "rolk3q3j",
|
|
"name": "public",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "r6gu2ajyidy1x69",
|
|
"indexes": [],
|
|
"listRule": "author = @request.auth.id || public = true || (@request.auth.id != \"\" && list_share_via_list.user ?= @request.auth.id)",
|
|
"name": "lists",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "author = @request.auth.id || (@request.auth.id != \"\" && list_share_via_list.list = id && list_share_via_list.user ?= @request.auth.id && list_share_via_list.permission = \"edit\")",
|
|
"viewRule": "author = @request.auth.id || public = true || (@request.auth.id != \"\" && list_share_via_list.user ?= @request.auth.id)"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json1840770130",
|
|
"maxSize": 1,
|
|
"name": "max_distance",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2471616556",
|
|
"maxSize": 1,
|
|
"name": "max_elevation_gain",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2649087013",
|
|
"maxSize": 1,
|
|
"name": "max_elevation_loss",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json4152030739",
|
|
"maxSize": 1,
|
|
"name": "max_duration",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json4257545400",
|
|
"maxSize": 1,
|
|
"name": "min_distance",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3237476552",
|
|
"maxSize": 1,
|
|
"name": "min_elevation_gain",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3460547777",
|
|
"maxSize": 1,
|
|
"name": "min_elevation_loss",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json1728702201",
|
|
"maxSize": 1,
|
|
"name": "min_duration",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
}
|
|
],
|
|
"id": "4wbv9tz5zjdrjh1",
|
|
"indexes": [],
|
|
"listRule": null,
|
|
"name": "trails_filter",
|
|
"system": false,
|
|
"type": "view",
|
|
"updateRule": null,
|
|
"viewQuery": "SELECT users.id, COALESCE(printf(\"%.2f\", MAX(trails.distance)), 0) AS max_distance,\n COALESCE(printf(\"%.2f\", MAX(trails.elevation_gain)), 0) AS max_elevation_gain, \n COALESCE(printf(\"%.2f\", MAX(trails.elevation_loss)), 0) AS max_elevation_loss, \n COALESCE(printf(\"%.2f\", MAX(trails.duration)), 0) AS max_duration, \n COALESCE(printf(\"%.2f\", MIN(trails.distance)), 0) AS min_distance, \n COALESCE(printf(\"%.2f\", MIN(trails.elevation_gain)), 0) AS min_elevation_gain, \n COALESCE(printf(\"%.2f\", MIN(trails.elevation_loss)), 0) AS min_elevation_loss, \n COALESCE(printf(\"%.2f\", MIN(trails.duration)), 0) AS min_duration \nFROM users \n LEFT JOIN trails ON \n users.id = trails.author OR \n trails.public = 1 OR \n EXISTS (\n SELECT 1 \n FROM trail_share \n WHERE trail_share.trail = trails.id \n AND trail_share.user = users.id\n ) GROUP BY users.id;",
|
|
"viewRule": "@request.auth.id = id"
|
|
},
|
|
{
|
|
"createRule": "@request.auth.id != \"\" && (trail.author = @request.auth.id || trail.public = true || trail.trail_share_via_trail.user ?= @request.auth.id)",
|
|
"deleteRule": "@request.auth.id = author",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "0udwb0kl",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "text",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "fhgxdiam",
|
|
"max": null,
|
|
"min": null,
|
|
"name": "rating",
|
|
"onlyInt": false,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "7lwo1mxx",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "e864strfxo14pm4",
|
|
"hidden": false,
|
|
"id": "snrlpxar",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "trail",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "lf06qip3f4d11yk",
|
|
"indexes": [],
|
|
"listRule": "((@request.auth.id != \"\" && trail.author = @request.auth.id) || trail.public = true) || author = @request.auth.id || trail.trail_share_via_trail.user ?= @request.auth.id",
|
|
"name": "comments",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "@request.auth.id = author",
|
|
"viewRule": "((@request.auth.id != \"\" && trail.author = @request.auth.id) || trail.public = true) || author = @request.auth.id || trail.trail_share_via_trail.user ?= @request.auth.id"
|
|
},
|
|
{
|
|
"createRule": "",
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "0sepzvkh",
|
|
"maxSelect": 1,
|
|
"name": "language",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"en",
|
|
"de",
|
|
"fr",
|
|
"hu",
|
|
"it",
|
|
"nl",
|
|
"pl",
|
|
"pt",
|
|
"zh",
|
|
"es"
|
|
]
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "pd2cq8sq",
|
|
"max": 10000,
|
|
"min": 0,
|
|
"name": "bio",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "zwg1jl0d",
|
|
"maxSelect": 1,
|
|
"name": "unit",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"metric",
|
|
"imperial"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "jo1zcsbu",
|
|
"maxSelect": 1,
|
|
"name": "mapFocus",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"trails",
|
|
"location"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "ufhepjxo",
|
|
"maxSize": 2000000,
|
|
"name": "location",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"cascadeDelete": false,
|
|
"collectionId": "kjxvi8asj2igqwf",
|
|
"hidden": false,
|
|
"id": "owlyzl1x",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "category",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "xdbayoqg",
|
|
"maxSize": 2000000,
|
|
"name": "tilesets",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "unsh0qsp",
|
|
"maxSize": 2000000,
|
|
"name": "terrain",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "slurqh9q",
|
|
"maxSize": 2000000,
|
|
"name": "privacy",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "sbwmk0q2",
|
|
"maxSize": 2000000,
|
|
"name": "notifications",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "5uip7a4p",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "user",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "uavt73rsqcn1n13",
|
|
"indexes": [],
|
|
"listRule": "user = @request.auth.id",
|
|
"name": "settings",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "user = @request.auth.id",
|
|
"viewRule": "user = @request.auth.id"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2217363417",
|
|
"maxSize": 1,
|
|
"name": "max_lat",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3888878381",
|
|
"maxSize": 1,
|
|
"name": "max_lon",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2279188374",
|
|
"maxSize": 1,
|
|
"name": "min_lat",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3828904802",
|
|
"maxSize": 1,
|
|
"name": "min_lon",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
}
|
|
],
|
|
"id": "urytyc428mwlbqq",
|
|
"indexes": [],
|
|
"listRule": null,
|
|
"name": "trails_bounding_box",
|
|
"system": false,
|
|
"type": "view",
|
|
"updateRule": null,
|
|
"viewQuery": "SELECT \n users.id, \n COALESCE(MAX(trails.lat), 0) AS max_lat, \n COALESCE(MAX(trails.lon), 0) AS max_lon, \n COALESCE(MIN(trails.lat), 0) AS min_lat, \n COALESCE(MIN(trails.lon), 0) AS min_lon \nFROM users \nLEFT JOIN trails \n ON users.id = trails.author \n OR trails.public = TRUE \n OR EXISTS (\n SELECT 1 \n FROM trail_share \n WHERE trail_share.trail = trails.id \n AND trail_share.user = users.id\n ) \nGROUP BY users.id;",
|
|
"viewRule": "@request.auth.id = id"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "users[0-9]{6}",
|
|
"hidden": false,
|
|
"id": "_clone_XKek",
|
|
"max": 150,
|
|
"min": 3,
|
|
"name": "username",
|
|
"pattern": "^[\\w][\\w\\.\\-]*$",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "_clone_zJ4t",
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/png",
|
|
"image/svg+xml",
|
|
"image/gif",
|
|
"image/webp"
|
|
],
|
|
"name": "avatar",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3709889147",
|
|
"maxSize": 1,
|
|
"name": "bio",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "_clone_i4BC",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "bool3523658193",
|
|
"name": "private",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"id": "xku110v5a5xbufa",
|
|
"indexes": [],
|
|
"listRule": "",
|
|
"name": "users_anonymous",
|
|
"system": false,
|
|
"type": "view",
|
|
"updateRule": null,
|
|
"viewQuery": "SELECT users.id, username, avatar, bio, users.created, CAST(COALESCE(json_extract(privacy, '$.account') = 'private', false) as BOOL) as private FROM users LEFT JOIN settings ON settings.user = users.id",
|
|
"viewRule": ""
|
|
},
|
|
{
|
|
"createRule": "trail.author = @request.auth.id",
|
|
"deleteRule": "trail.author = @request.auth.id",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "e864strfxo14pm4",
|
|
"hidden": false,
|
|
"id": "eskurfx6",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "trail",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "yyzimwee",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "user",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "zr7aaqxl",
|
|
"maxSelect": 1,
|
|
"name": "permission",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"view",
|
|
"edit"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "1mns8mlal6uf9ku",
|
|
"indexes": [],
|
|
"listRule": "trail.author = @request.auth.id || user = @request.auth.id",
|
|
"name": "trail_share",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "trail.author = @request.auth.id",
|
|
"viewRule": "trail.author = @request.auth.id || user = @request.auth.id"
|
|
},
|
|
{
|
|
"authAlert": {
|
|
"emailTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>We noticed a login to your {APP_NAME} account from a new location.</p>\n<p>If this was you, you may disregard this email.</p>\n<p><strong>If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.</strong></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Login from a new location"
|
|
},
|
|
"enabled": true
|
|
},
|
|
"authRule": "",
|
|
"authToken": {
|
|
"duration": 1209600
|
|
},
|
|
"confirmEmailChangeTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Click on the button below to confirm your new email address.</p>\n<p>\n <a class=\"btn\" href=\"{APP_URL}/auth/confirm-email-change/{TOKEN}\" target=\"_blank\" rel=\"noopener\">Confirm new email</a>\n</p>\n<p><i>If you didn't ask to change your email address, you can ignore this email.</i></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Confirm your {APP_NAME} new email address"
|
|
},
|
|
"createRule": "",
|
|
"deleteRule": "id = @request.auth.id",
|
|
"emailChangeToken": {
|
|
"duration": 1800
|
|
},
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"cost": 10,
|
|
"hidden": true,
|
|
"id": "password901924565",
|
|
"max": 0,
|
|
"min": 8,
|
|
"name": "password",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "password"
|
|
},
|
|
{
|
|
"autogeneratePattern": "[a-zA-Z0-9_]{50}",
|
|
"hidden": true,
|
|
"id": "text2504183744",
|
|
"max": 60,
|
|
"min": 30,
|
|
"name": "tokenKey",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"exceptDomains": null,
|
|
"hidden": false,
|
|
"id": "email3885137012",
|
|
"name": "email",
|
|
"onlyDomains": null,
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": true,
|
|
"type": "email"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "bool1547992806",
|
|
"name": "emailVisibility",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": true,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "bool256245529",
|
|
"name": "verified",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": true,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"autogeneratePattern": "users[0-9]{6}",
|
|
"hidden": false,
|
|
"id": "text4166911607",
|
|
"max": 150,
|
|
"min": 3,
|
|
"name": "username",
|
|
"pattern": "^[\\w][\\w\\.\\-]*$",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "dlzhxcn2",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "token",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "users_avatar",
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/png",
|
|
"image/svg+xml",
|
|
"image/gif",
|
|
"image/webp"
|
|
],
|
|
"name": "avatar",
|
|
"presentable": false,
|
|
"protected": false,
|
|
"required": false,
|
|
"system": false,
|
|
"thumbs": null,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"fileToken": {
|
|
"duration": 120
|
|
},
|
|
"id": "_pb_users_auth_",
|
|
"indexes": [
|
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__username_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (username COLLATE NOCASE)",
|
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__email_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `email` + "`" + `) WHERE ` + "`" + `email` + "`" + ` != ''",
|
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__tokenKey_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `tokenKey` + "`" + `)"
|
|
],
|
|
"listRule": "id = @request.auth.id",
|
|
"manageRule": null,
|
|
"mfa": {
|
|
"duration": 1800,
|
|
"enabled": false,
|
|
"rule": ""
|
|
},
|
|
"name": "users",
|
|
"oauth2": {
|
|
"enabled": false,
|
|
"mappedFields": {
|
|
"avatarURL": "",
|
|
"id": "",
|
|
"name": "",
|
|
"username": "username"
|
|
}
|
|
},
|
|
"otp": {
|
|
"duration": 180,
|
|
"emailTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Your one-time password is: <strong>{OTP}</strong></p>\n<p><i>If you didn't ask for the one-time password, you can ignore this email.</i></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "OTP for {APP_NAME}"
|
|
},
|
|
"enabled": false,
|
|
"length": 8
|
|
},
|
|
"passwordAuth": {
|
|
"enabled": true,
|
|
"identityFields": [
|
|
"email",
|
|
"username"
|
|
]
|
|
},
|
|
"passwordResetToken": {
|
|
"duration": 1800
|
|
},
|
|
"resetPasswordTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Click on the button below to reset your password.</p>\n<p>\n <a class=\"btn\" href=\"{APP_URL}/auth/confirm-reset/{TOKEN}\" target=\"_blank\" rel=\"noopener\">Reset password</a>\n</p>\n<p><i>If you didn't ask to reset your password, you can ignore this email.</i></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Reset your {APP_NAME} password"
|
|
},
|
|
"system": false,
|
|
"type": "auth",
|
|
"updateRule": "id = @request.auth.id",
|
|
"verificationTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Thank you for joining us at {APP_NAME}.</p>\n<p>Click on the button below to verify your email address.</p>\n<p>\n <a class=\"btn\" href=\"{APP_URL}/auth/confirm-verification/{TOKEN}\" target=\"_blank\" rel=\"noopener\">Verify</a>\n</p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Verify your {APP_NAME} email"
|
|
},
|
|
"verificationToken": {
|
|
"duration": 604800
|
|
},
|
|
"viewRule": "id = @request.auth.id"
|
|
},
|
|
{
|
|
"createRule": "list.author = @request.auth.id",
|
|
"deleteRule": "list.author = @request.auth.id",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "r6gu2ajyidy1x69",
|
|
"hidden": false,
|
|
"id": "luqrtipy",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "list",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "mix12kkh",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "user",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "n9rjdx5g",
|
|
"maxSelect": 1,
|
|
"name": "permission",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"view",
|
|
"edit"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "1kot7t9na3hi0gl",
|
|
"indexes": [],
|
|
"listRule": "list.author = @request.auth.id || user = @request.auth.id",
|
|
"name": "list_share",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "list.author = @request.auth.id",
|
|
"viewRule": "list.author = @request.auth.id || user = @request.auth.id"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2310347867",
|
|
"maxSize": 1,
|
|
"name": "trail_id",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2862495610",
|
|
"maxSize": 1,
|
|
"name": "date",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json1579384326",
|
|
"maxSize": 1,
|
|
"name": "name",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json1843675174",
|
|
"maxSize": 1,
|
|
"name": "description",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3275261007",
|
|
"maxSize": 1,
|
|
"name": "gpx",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3182418120",
|
|
"maxSize": 1,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json142008537",
|
|
"maxSize": 1,
|
|
"name": "photos",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json479369857",
|
|
"maxSize": 1,
|
|
"name": "distance",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2254405824",
|
|
"maxSize": 1,
|
|
"name": "duration",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3015100073",
|
|
"maxSize": 1,
|
|
"name": "elevation_gain",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json3171089056",
|
|
"maxSize": 1,
|
|
"name": "elevation_loss",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2990389176",
|
|
"maxSize": 1,
|
|
"name": "created",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2363381545",
|
|
"maxSize": 1,
|
|
"name": "type",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
}
|
|
],
|
|
"id": "t9lphichi5xwyeu",
|
|
"indexes": [],
|
|
"listRule": "(\n @request.auth.id = author || \n (@collection.users_anonymous.id ?= author && @collection.users_anonymous.private ?= false)\n)\n&&\n(\n @collection.trails.id ?= trail_id && \n (\n @collection.trails.author ?= @request.auth.id ||\n @collection.trails.public ?= true || \n (@request.auth.id != \"\" && @collection.trails.trail_share_via_trail.user ?= @request.auth.id)\n )\n)",
|
|
"name": "activities",
|
|
"system": false,
|
|
"type": "view",
|
|
"updateRule": null,
|
|
"viewQuery": "SELECT id,trail_id,date,name,description,gpx,author,photos,distance,duration,elevation_gain,elevation_loss,created,type \nFROM (\n SELECT summit_logs.id,trails.id as trail_id,summit_logs.date,trails.name,text as description,summit_logs.gpx,summit_logs.author,summit_logs.photos,summit_logs.distance,summit_logs.duration,summit_logs.elevation_gain,summit_logs.elevation_loss,summit_logs.created,\"summit_log\" as type \n FROM summit_logs\n JOIN trails ON summit_logs.id IN (\n SELECT value\n FROM json_each(trails.summit_logs)\n )\n UNION\n SELECT id,id as trail_id,date,name,description,gpx,author,photos,distance,duration,elevation_gain,elevation_loss,created,\"trail\" as type \n FROM trails\n)\nORDER BY created DESC",
|
|
"viewRule": "(\n @request.auth.id = author || \n (@collection.users_anonymous.id ?= author && @collection.users_anonymous.private ?= false)\n)\n&&\n(\n @collection.trails.id ?= trail_id && \n (\n @collection.trails.author ?= @request.auth.id ||\n @collection.trails.public ?= true || \n (@request.auth.id != \"\" && @collection.trails.trail_share_via_trail.user ?= @request.auth.id)\n )\n)"
|
|
},
|
|
{
|
|
"createRule": "@request.auth.id = follower.id && (@collection.users_anonymous.id ?= followee && @collection.users_anonymous.private ?= false)",
|
|
"deleteRule": "@request.auth.id = follower.id",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "in1traur",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "follower",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "wxwomfd5",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "followee",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "8obn1ukumze565i",
|
|
"indexes": [],
|
|
"listRule": "@request.auth.id = follower.id || @request.auth.id = followee.id",
|
|
"name": "follows",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "@request.auth.id = follower.id",
|
|
"viewRule": "@request.auth.id = follower.id || @request.auth.id = followee.id"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json2215181735",
|
|
"maxSize": 1,
|
|
"name": "followers",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "json1908379107",
|
|
"maxSize": 1,
|
|
"name": "following",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
}
|
|
],
|
|
"id": "j6w72f0kb5ivd7x",
|
|
"indexes": [],
|
|
"listRule": "@request.auth.id = id || (@collection.users_anonymous.id ?= id && @collection.users_anonymous.private ?= false)",
|
|
"name": "follow_counts",
|
|
"system": false,
|
|
"type": "view",
|
|
"updateRule": null,
|
|
"viewQuery": "SELECT \n users.id,\n COALESCE(followers.count, 0) AS followers,\n COALESCE(following.count, 0) AS following\nFROM users\nLEFT JOIN (\n SELECT followee AS user_id, COUNT(*) AS count\n FROM follows\n GROUP BY followee\n) AS followers ON users.id = followers.user_id\nLEFT JOIN (\n SELECT follower AS user_id, COUNT(*) AS count\n FROM follows\n GROUP BY follower\n) AS following ON users.id = following.user_id",
|
|
"viewRule": "@request.auth.id = id || (@collection.users_anonymous.id ?= id && @collection.users_anonymous.private ?= false)"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "b57prsbu",
|
|
"maxSelect": 1,
|
|
"name": "type",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "select",
|
|
"values": [
|
|
"trail_create",
|
|
"list_create",
|
|
"new_follower",
|
|
"trail_comment",
|
|
"trail_share",
|
|
"list_share"
|
|
]
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "1i2ycgle",
|
|
"maxSize": 2000000,
|
|
"name": "metadata",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "pyimxu85",
|
|
"name": "seen",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "tmghd4vo",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "recipient",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "exqo1whj",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "author",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "khrcci2uqknny8h",
|
|
"indexes": [],
|
|
"listRule": "@request.auth.id = recipient",
|
|
"name": "notifications",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "@request.auth.id = recipient && (@request.body.type = null||@request.body.type = type) && (@request.body.metadata = null||@request.body.metadata = metadata) && (@request.body.recipient = null||@request.body.recipient = recipient) && (@request.body.author = null||@request.body.author = author) && @request.body.seen = true",
|
|
"viewRule": "@request.auth.id = recipient"
|
|
},
|
|
{
|
|
"createRule": "@request.auth.id = user.id",
|
|
"deleteRule": "@request.auth.id = user.id",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "yhqqdtrf",
|
|
"maxSize": 2000000,
|
|
"name": "strava",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "6s0oxqgp",
|
|
"maxSize": 2000000,
|
|
"name": "komoot",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": false,
|
|
"type": "json"
|
|
},
|
|
{
|
|
"cascadeDelete": true,
|
|
"collectionId": "_pb_users_auth_",
|
|
"hidden": false,
|
|
"id": "bmktyzqz",
|
|
"maxSelect": 1,
|
|
"minSelect": 0,
|
|
"name": "user",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": false,
|
|
"type": "relation"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": false,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "iz4sezoehde64wp",
|
|
"indexes": [
|
|
"CREATE UNIQUE INDEX ` + "`" + `idx_qMhw0Em` + "`" + ` ON ` + "`" + `integrations` + "`" + ` (` + "`" + `user` + "`" + `)"
|
|
],
|
|
"listRule": "@request.auth.id = user.id",
|
|
"name": "integrations",
|
|
"system": false,
|
|
"type": "base",
|
|
"updateRule": "@request.auth.id = user.id",
|
|
"viewRule": "@request.auth.id = user.id"
|
|
},
|
|
{
|
|
"authAlert": {
|
|
"emailTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>We noticed a login to your {APP_NAME} account from a new location.</p>\n<p>If this was you, you may disregard this email.</p>\n<p><strong>If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.</strong></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Login from a new location"
|
|
},
|
|
"enabled": true
|
|
},
|
|
"authRule": "",
|
|
"authToken": {
|
|
"duration": 1209600
|
|
},
|
|
"confirmEmailChangeTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Click on the button below to confirm your new email address.</p>\n<p>\n <a class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}\" target=\"_blank\" rel=\"noopener\">Confirm new email</a>\n</p>\n<p><i>If you didn't ask to change your email address, you can ignore this email.</i></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Confirm your {APP_NAME} new email address"
|
|
},
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"emailChangeToken": {
|
|
"duration": 1800
|
|
},
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"cost": 0,
|
|
"hidden": true,
|
|
"id": "password901924565",
|
|
"max": 0,
|
|
"min": 8,
|
|
"name": "password",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "password"
|
|
},
|
|
{
|
|
"autogeneratePattern": "[a-zA-Z0-9]{50}",
|
|
"hidden": true,
|
|
"id": "text2504183744",
|
|
"max": 60,
|
|
"min": 30,
|
|
"name": "tokenKey",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"exceptDomains": null,
|
|
"hidden": false,
|
|
"id": "email3885137012",
|
|
"name": "email",
|
|
"onlyDomains": null,
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "email"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "bool1547992806",
|
|
"name": "emailVisibility",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": true,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "bool256245529",
|
|
"name": "verified",
|
|
"presentable": false,
|
|
"required": false,
|
|
"system": true,
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"fileToken": {
|
|
"duration": 120
|
|
},
|
|
"id": "pbc_3142635823",
|
|
"indexes": [
|
|
"CREATE UNIQUE INDEX ` + "`" + `idx_tokenKey_pbc_3142635823` + "`" + ` ON ` + "`" + `_superusers` + "`" + ` (` + "`" + `tokenKey` + "`" + `)",
|
|
"CREATE UNIQUE INDEX ` + "`" + `idx_email_pbc_3142635823` + "`" + ` ON ` + "`" + `_superusers` + "`" + ` (` + "`" + `email` + "`" + `) WHERE ` + "`" + `email` + "`" + ` != ''"
|
|
],
|
|
"listRule": null,
|
|
"manageRule": null,
|
|
"mfa": {
|
|
"duration": 1800,
|
|
"enabled": false,
|
|
"rule": ""
|
|
},
|
|
"name": "_superusers",
|
|
"oauth2": {
|
|
"enabled": false,
|
|
"mappedFields": {
|
|
"avatarURL": "",
|
|
"id": "",
|
|
"name": "",
|
|
"username": ""
|
|
}
|
|
},
|
|
"otp": {
|
|
"duration": 180,
|
|
"emailTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Your one-time password is: <strong>{OTP}</strong></p>\n<p><i>If you didn't ask for the one-time password, you can ignore this email.</i></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "OTP for {APP_NAME}"
|
|
},
|
|
"enabled": false,
|
|
"length": 8
|
|
},
|
|
"passwordAuth": {
|
|
"enabled": true,
|
|
"identityFields": [
|
|
"email"
|
|
]
|
|
},
|
|
"passwordResetToken": {
|
|
"duration": 1800
|
|
},
|
|
"resetPasswordTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Click on the button below to reset your password.</p>\n<p>\n <a class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-password-reset/{TOKEN}\" target=\"_blank\" rel=\"noopener\">Reset password</a>\n</p>\n<p><i>If you didn't ask to reset your password, you can ignore this email.</i></p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Reset your {APP_NAME} password"
|
|
},
|
|
"system": true,
|
|
"type": "auth",
|
|
"updateRule": null,
|
|
"verificationTemplate": {
|
|
"body": "<p>Hello,</p>\n<p>Thank you for joining us at {APP_NAME}.</p>\n<p>Click on the button below to verify your email address.</p>\n<p>\n <a class=\"btn\" href=\"{APP_URL}/_/#/auth/confirm-verification/{TOKEN}\" target=\"_blank\" rel=\"noopener\">Verify</a>\n</p>\n<p>\n Thanks,<br/>\n {APP_NAME} team\n</p>",
|
|
"subject": "Verify your {APP_NAME} email"
|
|
},
|
|
"verificationToken": {
|
|
"duration": 259200
|
|
},
|
|
"viewRule": null
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text455797646",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "collectionRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text127846527",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "recordRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text2462348188",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "provider",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text1044722854",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "providerId",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "pbc_2281828961",
|
|
"indexes": [
|
|
"CREATE UNIQUE INDEX ` + "`" + `idx_externalAuths_record_provider` + "`" + ` ON ` + "`" + `_externalAuths` + "`" + ` (collectionRef, recordRef, provider)",
|
|
"CREATE UNIQUE INDEX ` + "`" + `idx_externalAuths_collection_provider` + "`" + ` ON ` + "`" + `_externalAuths` + "`" + ` (collectionRef, provider, providerId)"
|
|
],
|
|
"listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
|
|
"name": "_externalAuths",
|
|
"system": true,
|
|
"type": "base",
|
|
"updateRule": null,
|
|
"viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text455797646",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "collectionRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text127846527",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "recordRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text1582905952",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "method",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "pbc_2279338944",
|
|
"indexes": [
|
|
"CREATE INDEX ` + "`" + `idx_mfas_collectionRef_recordRef` + "`" + ` ON ` + "`" + `_mfas` + "`" + ` (collectionRef,recordRef)"
|
|
],
|
|
"listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
|
|
"name": "_mfas",
|
|
"system": true,
|
|
"type": "base",
|
|
"updateRule": null,
|
|
"viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": null,
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text455797646",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "collectionRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text127846527",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "recordRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"cost": 8,
|
|
"hidden": true,
|
|
"id": "password901924565",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "password",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "password"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": true,
|
|
"id": "text3866985172",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "sentTo",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": false,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "pbc_1638494021",
|
|
"indexes": [
|
|
"CREATE INDEX ` + "`" + `idx_otps_collectionRef_recordRef` + "`" + ` ON ` + "`" + `_otps` + "`" + ` (collectionRef, recordRef)"
|
|
],
|
|
"listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
|
|
"name": "_otps",
|
|
"system": true,
|
|
"type": "base",
|
|
"updateRule": null,
|
|
"viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
|
|
},
|
|
{
|
|
"createRule": null,
|
|
"deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
|
|
"fields": [
|
|
{
|
|
"autogeneratePattern": "[a-z0-9]{15}",
|
|
"hidden": false,
|
|
"id": "text3208210256",
|
|
"max": 15,
|
|
"min": 15,
|
|
"name": "id",
|
|
"pattern": "^[a-z0-9]+$",
|
|
"presentable": false,
|
|
"primaryKey": true,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text455797646",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "collectionRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text127846527",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "recordRef",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"autogeneratePattern": "",
|
|
"hidden": false,
|
|
"id": "text4228609354",
|
|
"max": 0,
|
|
"min": 0,
|
|
"name": "fingerprint",
|
|
"pattern": "",
|
|
"presentable": false,
|
|
"primaryKey": false,
|
|
"required": true,
|
|
"system": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate2990389176",
|
|
"name": "created",
|
|
"onCreate": true,
|
|
"onUpdate": false,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
},
|
|
{
|
|
"hidden": false,
|
|
"id": "autodate3332085495",
|
|
"name": "updated",
|
|
"onCreate": true,
|
|
"onUpdate": true,
|
|
"presentable": false,
|
|
"system": true,
|
|
"type": "autodate"
|
|
}
|
|
],
|
|
"id": "pbc_4275539003",
|
|
"indexes": [
|
|
"CREATE UNIQUE INDEX ` + "`" + `idx_authOrigins_unique_pairs` + "`" + ` ON ` + "`" + `_authOrigins` + "`" + ` (collectionRef, recordRef, fingerprint)"
|
|
],
|
|
"listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
|
|
"name": "_authOrigins",
|
|
"system": true,
|
|
"type": "base",
|
|
"updateRule": null,
|
|
"viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
|
|
}
|
|
]`
|
|
|
|
return app.ImportCollectionsByMarshaledJSON([]byte(jsonData), false)
|
|
}, func(app core.App) error {
|
|
return nil
|
|
})
|
|
}
|