Merge branch 'main' into invites-2

This commit is contained in:
Anton Tranelis 2025-08-20 20:51:17 +02:00 committed by GitHub
commit 9b8911a1f0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
416 changed files with 45302 additions and 4276 deletions

49
.github/workflows/test.build.docker.yml vendored Normal file
View File

@ -0,0 +1,49 @@
name: "test:build test docker"
on: push
jobs:
files-changed:
name: Detect File Changes - build - docker
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.filter.outputs.build-docker }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: filter
with:
filters: |
build-docker:
- '.github/workflows/*'
- '**/*'
build-production:
if: needs.files-changed.outputs.changes == 'true'
name: Build Docker Production
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Build Docker Production
run: docker compose -f docker-compose.yml build
working-directory: ${{env.WORKING_DIRECTORY}}
#build-development:
# if: needs.files-changed.outputs.changes == 'true'
# name: Build Docker Development
# needs: files-changed
# runs-on: ubuntu-latest
# env:
# WORKING_DIRECTORY: ./
# steps:
# - name: Checkout code
# uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
#
# - name: Build Docker Development
# run: docker compose build
# working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -56,3 +56,17 @@ jobs:
npm install
npm run build
working-directory: lib/
results:
if: ${{ always() }}
runs-on: ubuntu-latest
name: Test Example Apps - results
needs: [build-examples]
steps:
- run: |
result="${{ needs.build-examples.result }}"
if [[ $result == "success" || $result == "skipped" ]]; then
exit 0
else
exit 1
fi

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.claude/
data/

131
CLAUDE.md Normal file
View File

@ -0,0 +1,131 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is **Utopia Map**, a flexible collaborative mapping application for decentralized coordination and real-life networking. The project consists of three main parts:
- **`/app`**: React application (frontend) - the main Utopia Map instance
- **`/lib`**: React component library (`utopia-ui`) - reusable UI components
- **`/backend`**: Directus CMS backend configuration and Docker setup
## Development Commands
### App (Frontend)
```bash
cd app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run test:lint:eslint # Run ESLint
npm run preview # Preview production build
```
### Library (utopia-ui)
```bash
cd lib
npm install
npm run build # Build library
npm run start # Build in watch mode
npm run test:lint:eslint # Run ESLint
npm run lint # Run ESLint (alias)
npm run lintfix # Auto-fix ESLint issues
npm run test:component # Run Cypress component tests
npm run test:unit # Run Vitest unit tests with coverage
npm run test:unit:dev # Run Vitest in watch mode
npm run docs:generate # Generate TypeDoc documentation
```
### Root Level
```bash
./scripts/check-lint.sh # Run linting on both app and lib (used by PR hooks)
```
### Backend (Directus)
```bash
cd app
docker-compose up # Start Directus backend locally
# Sync data to/from Directus (run from backend/)
npx directus-sync pull --directus-url http://localhost:8055 --directus-email admin@it4c.dev --directus-password admin123
npx directus-sync push --directus-url http://localhost:8055 --directus-email admin@it4c.dev --directus-password admin123
```
## Architecture Overview
### High-Level Structure
**Utopia Map** is built on a **3-tier monorepo architecture**:
1. **Frontend App** (`/app`): Consumer application using `utopia-ui` components
2. **Component Library** (`/lib`): Reusable React components with TypeScript
3. **Backend** (`/backend`): Directus headless CMS with Docker configuration
### Key Design Patterns
**API Abstraction Layer**: The app uses API classes (`itemsApi`, `mapApi`, `layersApi`, etc.) that implement TypeScript interfaces to abstract backend communication. This allows swapping backends without changing components.
**Layer-Based Data Model**: Items are organized into customizable **Layers** (e.g., Places, Projects, People) where each layer defines:
- Visual styling (icons, colors, markers)
- Data structure and validation
- Custom popup and profile templates
**Component Composition**: The `UtopiaMap` component accepts child components like `<Layer>`, `<Tags>`, and `<Permissions>` to configure its behavior declaratively.
**Type-Safe APIs**: All API interactions use TypeScript interfaces (`ItemsApi<T>`, `UserApi`, `InviteApi`) ensuring type safety across the frontend-backend boundary.
### Core Components Architecture
- **`UtopiaMap`**: Main map container with Leaflet integration
- **`Layer`**: Defines item types with custom styling and behavior
- **`AppShell`**: Navigation, sidebar, and global app state management
- **`AuthProvider`**: Authentication context and user management
- **Profile Templates**: Flexible system for custom item display (`SimpleView`, `TabsView`, `OnepagerView`)
### Data Flow
1. **Items** are fetched via API classes from Directus backend
2. **Layers** define how items are displayed on the map
3. **Popups** show item previews when clicking map markers
4. **Profiles** provide detailed item views with custom templates
5. **Permissions** control CRUD operations based on user roles
### Testing Strategy
- **Unit Tests**: Vitest for lib components with coverage reporting
- **Component Tests**: Cypress for React component integration
- **Linting**: ESLint with TypeScript rules for code quality
- **Type Checking**: TypeScript strict mode across all packages
### Import Conventions
The lib uses path mapping for clean imports:
- `#components/*``./src/Components/*`
- `#types/*``./src/types/*`
- `#utils/*``./src/Utils/*`
- `#assets/*``./src/assets/*`
### Backend Integration
Uses **Directus** as headless CMS with:
- RESTful API for CRUD operations
- GraphQL endpoint available
- Real-time updates via WebSocket
- File/media management
- Role-based permissions
- Collection definitions in `/backend/directus-config/`
## Code Quality
- **ESLint** enforces code style across both app and lib
- **TypeScript strict mode** ensures type safety
- Pre-commit hooks run linting checks via `scripts/check-lint.sh`
- Coverage reporting for unit tests
- Automated dependency updates via `npm-check-updates`
## CSS and Styling Conventions
- **Tailwind CSS Prefix**: Always use the `tw:` prefix for all Tailwind CSS classes (e.g., `tw:flex`, `tw:bg-base-100`)
- **DaisyUI Components**: Use the `tw:` prefix for all DaisyUI component classes (e.g., `tw:btn`, `tw:card`, `tw:modal`)
- This prefix system prevents conflicts with other CSS frameworks and maintains consistent styling across the codebase

View File

@ -1,4 +1,7 @@
VITE_OPEN_COLLECTIVE_API_KEY=your_key
VITE_API_URL=https://api.utopia-lab.org
VITE_API_URL=http://localhost:8055/
#VITE_API_URL=https://api.utopia-lab.org
VITE_MAP_URL=http://local.development
#VITE_MAP_URL=CURRENT_WINDOW_LOCATION
VITE_VALIDATE_INVITE_FLOW_ID=01d61db0-25aa-4bfa-bc24-c6a8f208a455
VITE_REDEEM_INVITE_FLOW_ID=cc80ec73-ecf5-4789-bee5-1127fb1a6ed4

1
app/.gitignore vendored
View File

@ -1,3 +1,4 @@
node_modules/
dist/
.DS_Store
.env

13
app/package-lock.json generated
View File

@ -6482,14 +6482,15 @@
}
},
"node_modules/form-data": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
"integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
@ -7979,9 +7980,9 @@
}
},
"node_modules/linkifyjs": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.1.tgz",
"integrity": "sha512-DRSlB9DKVW04c4SUdGvKK5FR6be45lTU9M76JnngqPeeGDqPwYc0zdUErtsNVMtxPXgUWV4HbXbnC4sNyBxkYg==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz",
"integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==",
"license": "MIT"
},
"node_modules/locate-path": {

View File

@ -54,7 +54,7 @@ import { ModalContent } from './ModalContent'
import { Landingpage } from './pages/Landingpage'
import MapContainer from './pages/MapContainer'
import { getBottomRoutes, routes } from './routes/sidebar'
import { config } from '@/config'
import { config } from './config'
import { InviteApi } from './api/inviteApi'
const userApi = new UserApi()
@ -83,7 +83,10 @@ function App() {
useEffect(() => {
setPermissionsApiInstance(new permissionsApi())
setMapApiInstance(new mapApi(window.location.origin))
// TODO: it should be mapId instead of mapUrl, which then in turn can be an URL
const mapUrl =
config.mapUrl === 'CURRENT_WINDOW_LOCATION' ? window.location.origin : config.mapUrl
setMapApiInstance(new mapApi(mapUrl))
setAttestationApi(new itemsApi<any>('attestations'))
}, [])
@ -114,7 +117,7 @@ function App() {
path: '/' + l.name, // url
icon: (
<SVG
src={'https://api.utopia-lab.org/assets/' + l.indexIcon}
src={config.apiUrl + 'assets/' + l.indexIcon}
className='tw:w-6 tw:h-6'
preProcessor={(code: string) =>
code.replace(/stroke=".*?"/g, 'stroke="currentColor"')
@ -135,7 +138,7 @@ function App() {
link.rel = 'icon'
document.getElementsByTagName('head')[0].appendChild(link)
}
link.href = map?.logo && 'https://api.utopia-lab.org/assets/' + map.logo // Specify the path to your favicon
link.href = map?.logo && config.apiUrl + 'assets/' + map.logo // Specify the path to your favicon
}
setLoading(false)
@ -154,7 +157,7 @@ function App() {
<div className='App tw:overflow-x-hidden'>
<AuthProvider userApi={userApi} inviteApi={inviteApi}>
<AppShell
assetsApi={new assetsApi('https://api.utopia-lab.org/assets/')}
assetsApi={new assetsApi(config.apiUrl + 'assets/')}
appName={map.name}
embedded={embedded}
openCollectiveApiKey={config.openCollectiveApiKey}

View File

@ -6,6 +6,8 @@
import { useEffect, useState } from 'react'
import { TextView } from 'utopia-ui'
import { config } from './config'
interface ChapterProps {
clickAction1: () => void
map?: any
@ -17,13 +19,21 @@ export function Welcome1({ clickAction1, map }: ChapterProps) {
{map.custom_text ? (
<>
<TextView rawText={map.custom_text}></TextView>
<div className='tw:grid'>
<label
className='tw:btn tw:btn-primary tw:place-self-end tw:mt-4'
onClick={() => clickAction1()}
>
Close
</label>
</div>
</>
) : (
<>
<h3 className='tw:font-bold tw:text-lg'>Welcome to {map?.name || 'Utopia Map'}</h3>
<img
className='tw:float-right tw:w-32 tw:m-2'
src={'https://api.utopia-lab.org/assets/' + map.logo}
src={config.apiUrl + 'assets/' + map.logo}
></img>
<p className='tw:py-3'>
It is a tool for collaborative mapping to connect local initiatives, people and events.

View File

@ -4,6 +4,9 @@
/* eslint-disable @typescript-eslint/no-unsafe-return */
import { createDirectus, rest, authentication } from '@directus/sdk'
// eslint-disable-next-line import/no-relative-parent-imports
import { config } from '../config'
import type { AuthenticationData, AuthenticationStorage } from '@directus/sdk'
import type { Point } from 'geojson'
import type { Item } from 'utopia-ui'
@ -94,7 +97,7 @@ export async function getRefreshToken() {
return auth!.refresh_token
}
export const directusClient = createDirectus<MyCollections>('https://api.utopia-lab.org/')
export const directusClient = createDirectus<MyCollections>(config.apiUrl)
.with(rest())
.with(
authentication('json', {

View File

@ -17,7 +17,7 @@ export class mapApi {
try {
const map = await directusClient.request(
readItems('maps' as any, {
fields: ['*', { user_type: ['name'] }],
fields: ['*'],
filter: { url: { _eq: this.url } } as any,
limit: 500,
}),

View File

@ -1,5 +1,6 @@
export const config = {
apiUrl: String(import.meta.env.VITE_API_URL ?? 'https://api.utopia-lab.org'),
apiUrl: String(import.meta.env.VITE_API_URL ?? 'http://localhost:8055/'),
mapUrl: String(import.meta.env.VITE_MAP_URL ?? 'http://local.development'),
validateInviteFlowId: String(
import.meta.env.VITE_VALIDATE_INVITE_FLOW_ID ?? '01d61db0-25aa-4bfa-bc24-c6a8f208a455',
),

View File

@ -12,6 +12,7 @@ import { useNavigate } from 'react-router-dom'
import { MapOverlayPage } from 'utopia-ui'
import { itemsApi } from '../api/itemsApi'
import { config } from '../config'
export const Landingpage = () => {
const [isLandingpageVisible, setIsLandingpageVisible] = useState(true)
@ -137,7 +138,7 @@ export const Landingpage = () => {
<li key={idx}>
<div className='w-24 h-24 mx-auto'>
<img
src={`https://api.utopia-lab.org/assets/${item.image}`}
src={`${config.apiUrl}assets/${item.image}`}
className='w-full h-full rounded-full'
alt=''
/>

View File

@ -23,6 +23,7 @@ import {
} from 'utopia-ui'
import { itemsApi } from '../api/itemsApi'
import { config } from '../config'
import type { Place } from '../api/directus'
import type { InviteApi } from '@/api/inviteApi'
@ -104,7 +105,7 @@ function MapContainer({
id={layer.id}
key={layer.id}
name={layer.name}
menuIcon={'https://api.utopia-lab.org/assets/' + layer.menuIcon}
menuIcon={config.apiUrl + 'assets/' + layer.menuIcon}
menuText={layer.menuText}
menuColor={layer.menuColor}
markerIcon={layer.markerIcon}

View File

@ -7,6 +7,6 @@ RUN npm install
RUN mkdir -p ./directus
RUN cd node_modules && find . -maxdepth 1 -type d -name "directus-extension-*" -exec mv {} ../directus \;
FROM directus/directus:11.4.1
FROM directus/directus:11.7.2
# Copy third party extensions
COPY --from=third-party-ext /extensions/directus ./extensions

View File

@ -1,5 +1,30 @@
# Utopia Backend
To run the backend you can simply execute
`docker-compose up`
To fill in all required data execute the following commands in order:
```
cd backend
npx directus-sync push \
--directus-url http://localhost:8055 \
--directus-email admin@it4c.dev \
--directus-password admin123
npx directus-sync seed push \
--directus-url http://localhost:8055 \
--directus-email admin@it4c.dev \
--directus-password admin123
./directus-config/manual/seed.sh
```
## Pull Data from Docker to Harddrive
In order to pull data from your locally running backend (see [docker-compose](../app/docker-compose.yml)) to your local harddrive, you can run the following command
```
npx directus-sync pull \
--directus-url http://localhost:8055 \
@ -7,10 +32,115 @@ npx directus-sync pull \
--directus-password admin123
```
## Push Data from Harddrive to Docker
To push local changes or to seed directus use the following command
```
npx directus-sync push \
--directus-url http://localhost:8055 \
--directus-email admin@it4c.dev \
--directus-password admin123
```
```
## Seed Data for local development
Seed the development data via:
```
npx directus-sync seed push \
--directus-url http://localhost:8055 \
--directus-email admin@it4c.dev \
--directus-password admin123
```
## Seed Data - find differences
In order so see what changes would appear when seeding, you can execute:
```
npx directus-sync seed diff \
--directus-url http://localhost:8055 \
--directus-email admin@it4c.dev \
--directus-password admin123
```
## Manual Seed
In order to seed files and additional data not covered by `directus-sync` run the script `backend/directus-config/manual/seed.sh`.
## Backup Database
Either keep a copy of the `/data/database` folder or run the following command to get an sql dump
```
docker exec -t utopia-map-database-1 pg_dumpall -c -U directus > dump.sql
```
## How to apply a database dump to the docker
Assuming you run docker-compose with the default postgress credentials and have the dump in cwd as ./dump.sql, execute:
Find current schema name:
```
echo "SELECT CURRENT_SCHEMA, CURRENT_SCHEMA();" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
```
> current_schema | current_schema
> ----------------+----------------
> public | public
> (1 row)
Drop schemata (loses all data):
```
echo "DROP SCHEMA public CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
echo "DROP SCHEMA tiger CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
echo "DROP SCHEMA tiger_data CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
echo "DROP SCHEMA topology CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
```
> drop cascades to table ...
> ...
> DROP SCHEMA
Create the public schema again:
```
echo "CREATE SCHEMA public;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
```
Verify schemata:
```
echo "select schema_name from information_schema.schemata;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus"
```
Verify database is empty:
```
echo "\dt" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus directus"
```
> Did not find any relations.
Create admin role & grant it:
```
echo "CREATE ROLE admin;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus directus"
```
Apply dump:
```
docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql -v ON_ERROR_STOP=1 --username directus directus" < ./dump.sql
```
> Bring time depending on the dump size.
Reassign ownership of tables:
```
echo "REASSIGN OWNED BY admin TO directus" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus directus
```
> REASSIGN OWNED
## Access Data on local drive
In order to access the postgress data mounted to the local drive at `/data/database` you need to make it accessible (assuming you are not root):
```
sudo chmod 777 -R ./data/
```
This process is to be repeated whenever you restart the database docker container
The same applies for the uploads and extension folder - ensure that the folder is writeable or file uploads will fail.

View File

@ -1 +1,191 @@
[]
[
{
"name": "get_item_by_secret",
"icon": "bolt",
"color": null,
"description": null,
"status": "active",
"trigger": "webhook",
"accountability": "all",
"options": {},
"operation": "8bf158c9-8540-4ce3-88da-0e5f17f76ed7",
"_syncId": "01d61db0-25aa-4bfa-bc24-c6a8f208a455"
},
{
"name": "Create initial secret",
"icon": "bolt",
"color": null,
"description": "Creates a secret for an existing item, triggered by another flow",
"status": "active",
"trigger": "operation",
"accountability": "all",
"options": {
"return": "$last"
},
"operation": "491e552d-539e-4474-bcf5-a94dcc43e67e",
"_syncId": "234d13fe-112a-4408-9bdb-78dd8cbd6b82"
},
{
"name": "Post Profiles to Murmurations",
"icon": "bolt",
"color": null,
"description": null,
"status": "inactive",
"trigger": "event",
"accountability": "all",
"options": {
"type": "action",
"scope": [
"items.create",
"items.update"
],
"collections": [
"updates"
]
},
"operation": "c4d60433-bb2e-4d06-b10b-f3029b02963d",
"_syncId": "5e320392-429d-4759-95ec-c5adcff61f01"
},
{
"name": "Request Profile",
"icon": "bolt",
"color": null,
"description": null,
"status": "inactive",
"trigger": "webhook",
"accountability": "all",
"options": {
"return": "$all"
},
"operation": null,
"_syncId": "6a48c246-2fb2-42ca-bebb-3f605e794d02"
},
{
"name": "Initial item secrets trigger",
"icon": "salinity",
"color": null,
"description": "Generate a secret for each item",
"status": "active",
"trigger": "manual",
"accountability": "all",
"options": {
"collections": [
"itemSecrets"
],
"requireSelection": false
},
"operation": "c5b9aa76-b524-47b8-acc5-dd0350a3a12a",
"_syncId": "9a1d1084-438f-471e-aac5-47e0749375e7"
},
{
"name": "Telegram-Bot-Trigger",
"icon": "mark_chat_read",
"color": "#3584E4",
"description": null,
"status": "active",
"trigger": "event",
"accountability": "all",
"options": {
"type": "action",
"scope": [
"items.update",
"items.create"
],
"collections": [
"items"
]
},
"operation": "95ed41d5-f195-4ebb-b444-402cff7c4a12",
"_syncId": "a78d01a4-13b3-46a4-8938-9606bf26e329"
},
{
"name": "Item Notification Setup",
"icon": "outgoing_mail",
"color": "#C061CB",
"description": "Inform Users about new items in layers they subscripe to ",
"status": "active",
"trigger": "event",
"accountability": "all",
"options": {
"type": "action",
"scope": [
"items.create",
"items.update"
],
"collections": [
"items"
]
},
"operation": "b95390e0-fa4c-4b2f-b7ea-a151b333229f",
"_syncId": "bff21ad9-d142-4a6e-96fe-8da016576bc7"
},
{
"name": "Create Secret",
"icon": "azm",
"color": null,
"description": null,
"status": "active",
"trigger": "event",
"accountability": "all",
"options": {
"type": "action",
"scope": [
"items.create"
],
"collections": [
"items"
]
},
"operation": "7b158384-5bce-4fd7-917a-4a61e53de6ec",
"_syncId": "cbd7d15d-7f09-4f45-8060-3b24adabf82a"
},
{
"name": "redeem-invite",
"icon": "bolt",
"color": null,
"description": "Redeems an invite link (item secret)",
"status": "active",
"trigger": "webhook",
"accountability": "all",
"options": {
"error_on_reject": true,
"method": "POST"
},
"operation": "020070b2-cf09-4a0d-82d0-c90b334a70cc",
"_syncId": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4"
},
{
"name": "Send Item Notification Mail",
"icon": "send",
"color": "#C061CB",
"description": null,
"status": "active",
"trigger": "operation",
"accountability": "all",
"options": {
"return": "$last"
},
"operation": "bb96dab8-08c7-4b39-8ead-c2ed5d5a906c",
"_syncId": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081"
},
{
"name": "Slug Generation",
"icon": "bolt",
"color": null,
"description": null,
"status": "active",
"trigger": "event",
"accountability": "all",
"options": {
"type": "action",
"scope": [
"items.create"
],
"collections": [
"items"
]
},
"operation": "c7c8e08e-e94d-41f1-9b69-70251b2d3caf",
"_syncId": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1"
}
]

View File

@ -1 +1,57 @@
[]
[
{
"name": "146. Friedensbaum",
"parent": "50431387-c49b-44bd-9311-911bf542163d",
"_syncId": "0b4ad883-d49f-4197-9941-24ae11f9a6eb"
},
{
"name": "outline",
"parent": "a5d15142-dd36-4194-bee5-13ddc420a99d",
"_syncId": "0b66498d-8ee3-48fc-8fe7-72b6f86d8d0f"
},
{
"name": "Docutopia Avatars",
"parent": null,
"_syncId": "0c7f264e-9946-4372-9e30-e4680b6cc2e2"
},
{
"name": "map-logos",
"parent": null,
"_syncId": "27b2a288-d50a-48b7-88cd-35945503277b"
},
{
"name": "fotos",
"parent": null,
"_syncId": "2daee21f-52b8-4152-88e9-ccf18169dcf0"
},
{
"name": "item-avatars",
"parent": null,
"_syncId": "43837abb-cc52-4439-ac98-e3671cbc7773"
},
{
"name": "Friedensbaum",
"parent": null,
"_syncId": "50431387-c49b-44bd-9311-911bf542163d"
},
{
"name": "marker-icons",
"parent": null,
"_syncId": "889a110a-a117-40fa-b091-5c5a2766563f"
},
{
"name": "heroicons",
"parent": null,
"_syncId": "a5d15142-dd36-4194-bee5-13ddc420a99d"
},
{
"name": "solid",
"parent": "a5d15142-dd36-4194-bee5-13ddc420a99d",
"_syncId": "a97106b4-218b-45df-adc9-36184886e285"
},
{
"name": "Würdekompass",
"parent": null,
"_syncId": "f612af27-e7dd-43f0-bde9-2f960f8897be"
}
]

View File

@ -1 +1,793 @@
[]
[
{
"name": "Backend-Operation",
"key": "backend_operation",
"type": "condition",
"position_x": 25,
"position_y": 22,
"options": {
"filter": {
"$accountability": {
"origin": {
"_neq": "https://api.utopia-lab.org"
}
}
}
},
"resolve": "8cc15ed4-8372-4a45-abaa-df19d560b01a",
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "30c1dc02-2ccb-4b45-9668-dcf9fd2b6f1c"
},
{
"name": "Condition",
"key": "condition_r2r2k",
"type": "condition",
"position_x": 36,
"position_y": 19,
"options": {
"filter": {
"$last": {
"result": {
"_eq": true
}
}
}
},
"resolve": "34a6106b-7789-4212-8bdc-e54798e2eca7",
"reject": "c548ce31-7864-4b71-af5f-9c6c0484f6a5",
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "c6568ed4-4a25-4439-b491-82b3924937b7"
},
{
"name": "Condition",
"key": "condition_wl4bz",
"type": "condition",
"position_x": 58,
"position_y": 1,
"options": {
"filter": {
"$last": {
"_eq": "0"
}
}
},
"resolve": "57f3b6fe-4cf9-4a11-984f-320d80246980",
"reject": "e58a5edc-0ecb-42f3-89b1-c0306af1ed15",
"flow": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1",
"_syncId": "432dcfa2-28c5-4d75-884f-706877984bd6"
},
{
"name": "Create item secret",
"key": "create_item_secret",
"type": "item-create",
"position_x": 19,
"position_y": 1,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "itemSecrets",
"payload": {
"item": "{{ $trigger.item }}"
}
},
"resolve": null,
"reject": null,
"flow": "234d13fe-112a-4408-9bdb-78dd8cbd6b82",
"_syncId": "491e552d-539e-4474-bcf5-a94dcc43e67e"
},
{
"name": "Create secret",
"key": "create_secret",
"type": "item-create",
"position_x": 25,
"position_y": 2,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "itemSecrets",
"payload": {
"item": "{{ $trigger.key }}"
}
},
"resolve": null,
"reject": null,
"flow": "cbd7d15d-7f09-4f45-8060-3b24adabf82a",
"_syncId": "7b158384-5bce-4fd7-917a-4a61e53de6ec"
},
{
"name": "Run Script",
"key": "exec_a3592",
"type": "exec",
"position_x": 37,
"position_y": 1,
"options": {
"code": "module.exports = async function(data) {\n\treturn data['$last'].map((item) => {\n \treturn {\n item: item.id,\n };\n });\n}"
},
"resolve": "2d4009c7-0a19-4c55-813c-f1e0f3de1bf0",
"reject": null,
"flow": "9a1d1084-438f-471e-aac5-47e0749375e7",
"_syncId": "34632268-e471-42d0-aede-292069da3ed2"
},
{
"name": "does_relation_exist",
"key": "exec_b85vb",
"type": "exec",
"position_x": 19,
"position_y": 19,
"options": {
"code": "module.exports = async function(data) {\n\treturn {\n \tresult: data['$last'].length > 0\n };\n}"
},
"resolve": "c6568ed4-4a25-4439-b491-82b3924937b7",
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "2532ca4a-8804-4d52-b656-1deedb7f2169"
},
{
"name": "get Creator",
"key": "get_creator",
"type": "item-read",
"position_x": 73,
"position_y": 1,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "directus_users",
"query": {
"fields:": "first_name"
},
"key": [
"{{$trigger.user_created}}"
]
},
"resolve": "4ed7ef1e-df2c-4431-869c-5db36566c89e",
"reject": null,
"flow": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081",
"_syncId": "df666750-86d0-4e92-b01c-d54bb25b5e10"
},
{
"name": "get_existing_relation",
"key": "get_existing_relation",
"type": "item-read",
"position_x": 2,
"position_y": 19,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "items_items",
"query": {
"filter": {
"type": {
"_eq": "is_following"
},
"items_id": {
"_eq": "{{ $trigger.body.item }}"
},
"related_items_id": {
"_eq": "{{ $last[0].item }}"
}
}
}
},
"resolve": "2532ca4a-8804-4d52-b656-1deedb7f2169",
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "0ef676a7-39b0-491e-8f42-21033af08078"
},
{
"name": "Get Item",
"key": "get_item",
"type": "item-read",
"position_x": 37,
"position_y": 1,
"options": {
"permissions": "$trigger",
"emitEvents": false,
"collection": "items",
"key": [
"{{$trigger.item}}"
],
"query": {
"fields": "name"
}
},
"resolve": "7aedff00-97c2-4865-9202-6015188303dc",
"reject": null,
"flow": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081",
"_syncId": "e41ca97f-b3f6-4baa-a910-db2913c9fe25"
},
{
"name": "Get Map",
"key": "get_map",
"type": "item-read",
"position_x": 55,
"position_y": 1,
"options": {
"permissions": "$trigger",
"emitEvents": false,
"collection": "maps",
"query": {
"filter": {
"url": {
"_eq": "{{$trigger.map_url}}"
}
},
"fields": "name,logo"
}
},
"resolve": "df666750-86d0-4e92-b01c-d54bb25b5e10",
"reject": null,
"flow": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081",
"_syncId": "7aedff00-97c2-4865-9202-6015188303dc"
},
{
"name": "Get Subscriber",
"key": "get_subscriber",
"type": "item-read",
"position_x": 19,
"position_y": 1,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "directus_users",
"key": [
"{{$trigger.subscriber}}"
],
"query": {
"fields": "email, first_name"
}
},
"resolve": "e41ca97f-b3f6-4baa-a910-db2913c9fe25",
"reject": null,
"flow": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081",
"_syncId": "bb96dab8-08c7-4b39-8ead-c2ed5d5a906c"
},
{
"name": "Read Items",
"key": "item_create_jqtv7",
"type": "item-read",
"position_x": 19,
"position_y": 1,
"options": {
"permissions": "$trigger",
"emitEvents": false,
"collection": "items",
"query": {
"limit": -1
}
},
"resolve": "34632268-e471-42d0-aede-292069da3ed2",
"reject": null,
"flow": "9a1d1084-438f-471e-aac5-47e0749375e7",
"_syncId": "c5b9aa76-b524-47b8-acc5-dd0350a3a12a"
},
{
"name": "Create Data",
"key": "item_create_x8h5h",
"type": "item-create",
"position_x": 37,
"position_y": 36,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "items_items",
"payload": {
"items_id": "{{ $trigger.body.item }}",
"related_items_id": "{{ read_data[0].item }}",
"type": "is_following"
}
},
"resolve": "5583fd94-c481-4a08-8632-115a2ce85577",
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "c548ce31-7864-4b71-af5f-9c6c0484f6a5"
},
{
"name": "Read Data",
"key": "item_read_0u34g",
"type": "item-read",
"position_x": 4,
"position_y": 47,
"options": {
"collection": "layers",
"key": "{{$last.layer}}"
},
"resolve": "a0be4bc8-1fe0-40fd-8cc7-01be6b25f5cb",
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "9823c564-3872-495a-b343-6108e328b0e4"
},
{
"name": "Read Data",
"key": "item_read_3ku1k",
"type": "item-read",
"position_x": 38,
"position_y": 1,
"options": {
"collection": "items",
"query": {
"filter": {
"slug": {
"_starts_with": "{{$last}}"
}
},
"aggregate": {
"count": "*"
}
}
},
"resolve": "a1df90fb-43dd-4753-b1d5-437c2eb8ad9f",
"reject": null,
"flow": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1",
"_syncId": "ac036523-bc4d-4230-9475-01085fa4f8e1"
},
{
"name": "Read Data",
"key": "item_read_3udhm",
"type": "item-read",
"position_x": 19,
"position_y": 1,
"options": {
"permissions": "$trigger",
"emitEvents": false,
"collection": "items",
"key": [
"{{$trigger.payload.id}}"
]
},
"resolve": "0be87499-c06d-4cf9-9212-27729ec5ad4e",
"reject": null,
"flow": "bff21ad9-d142-4a6e-96fe-8da016576bc7",
"_syncId": "b95390e0-fa4c-4b2f-b7ea-a151b333229f"
},
{
"name": "Read Data",
"key": "item_read_9qv1c",
"type": "item-read",
"position_x": 19,
"position_y": 1,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "itemSecrets",
"query": {
"filter": {
"secret": {
"_eq": "{{$trigger.query.secret}}"
}
}
},
"key": []
},
"resolve": null,
"reject": null,
"flow": "01d61db0-25aa-4bfa-bc24-c6a8f208a455",
"_syncId": "8bf158c9-8540-4ce3-88da-0e5f17f76ed7"
},
{
"name": "Read Data",
"key": "item_read_bls9m",
"type": "item-read",
"position_x": 5,
"position_y": 22,
"options": {
"collection": "items",
"key": "{{$trigger.payload.id}}"
},
"resolve": "9823c564-3872-495a-b343-6108e328b0e4",
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "95ed41d5-f195-4ebb-b444-402cff7c4a12"
},
{
"name": "Read Data",
"key": "item_read_p8h47",
"type": "item-read",
"position_x": 22,
"position_y": 49,
"options": {
"collection": "layers_maps"
},
"resolve": "373efd9a-c3c2-4bfc-b8d1-cd9b6f8492f9",
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "a0be4bc8-1fe0-40fd-8cc7-01be6b25f5cb"
},
{
"name": "Read Data",
"key": "item_read_q6u16",
"type": "item-read",
"position_x": 41,
"position_y": 49,
"options": {
"collection": "maps"
},
"resolve": "30c1dc02-2ccb-4b45-9668-dcf9fd2b6f1c",
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "373efd9a-c3c2-4bfc-b8d1-cd9b6f8492f9"
},
{
"name": "Update Data",
"key": "item_update_chszs",
"type": "item-update",
"position_x": 100,
"position_y": 17,
"options": {
"collection": "items",
"query": {
"filter": {
"id": {
"_eq": "{{$trigger.payload.id}}"
}
}
},
"payload": {
"slug": "{{slugify}}-{{singelton}}"
}
},
"resolve": null,
"reject": null,
"flow": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1",
"_syncId": "e58a5edc-0ecb-42f3-89b1-c0306af1ed15"
},
{
"name": "Update Data",
"key": "item_update_pv6i8",
"type": "item-update",
"position_x": 99,
"position_y": 1,
"options": {
"payload": {
"slug": "{{slugify}}"
},
"query": {
"filter": {
"id": {
"_eq": "{{$trigger.payload.id}}"
}
}
},
"collection": "items"
},
"resolve": null,
"reject": null,
"flow": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1",
"_syncId": "57f3b6fe-4cf9-4a11-984f-320d80246980"
},
{
"name": "Log to Console",
"key": "log_tj8ei",
"type": "log",
"position_x": 37,
"position_y": 1,
"options": {
"message": "{{$last}}"
},
"resolve": null,
"reject": null,
"flow": "5e320392-429d-4759-95ec-c5adcff61f01",
"_syncId": "f26cd8dd-9fda-4019-9f81-d2a9de999c14"
},
{
"name": "Send Email",
"key": "mail_kmf07",
"type": "mail",
"position_x": 91,
"position_y": 1,
"options": {
"type": "markdown",
"subject": "{{get_item.name}} {{$trigger.event}}",
"to": [
"{{get_subscriber.email}}"
],
"body": "Hi {{get_subscriber.first_name}},\n\n{{get_creator.first_name}} has {{$trigger.event}} [{{get_item.name}}]({{$trigger.map_url}}/item/{{$trigger.item}}) on [{{get_map[0].name}}]({{$trigger.map_url}}/item/{{$trigger.item}})."
},
"resolve": null,
"reject": null,
"flow": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081",
"_syncId": "4ed7ef1e-df2c-4431-869c-5db36566c89e"
},
{
"name": "prepare Mails",
"key": "prepare_mails",
"type": "exec",
"position_x": 55,
"position_y": 1,
"options": {
"code": "module.exports = async function(data) {\n\treturn data['$last'].map((item) => {\n \treturn {\n event: data['$trigger'].event === \"items.items.create\" ? \"created\" : \"updated\",\n item: data['$trigger'].payload.id,\n user_created: data['$accountability'].user,\n subscriber: item.directus_users_id,\n \t\t\tmap_url: data['$accountability'].origin,\n };\n });\n}"
},
"resolve": "661c5585-4833-46b0-82aa-72be37ec0ff2",
"reject": null,
"flow": "bff21ad9-d142-4a6e-96fe-8da016576bc7",
"_syncId": "00e09aa0-d3d3-492a-8a17-f9b74f421954"
},
{
"name": "Prepare Profile for Murmurations",
"key": "prepare_profile_for_murmurations",
"type": "transform",
"position_x": 19,
"position_y": 1,
"options": {
"json": {
"linked_schemas": [
"people_schema-v0.1.0"
],
"name": "{{$last.user_created.firstname}}",
"nickname": "{{$last.user_created.firstname}}",
"image": "{{$last.user_created.avatar}}",
"geolocation": {
"lat": 50.43312645607191,
"lon": 9.714832305908205
}
}
},
"resolve": "f26cd8dd-9fda-4019-9f81-d2a9de999c14",
"reject": null,
"flow": "5e320392-429d-4759-95ec-c5adcff61f01",
"_syncId": "c4d60433-bb2e-4d06-b10b-f3029b02963d"
},
{
"name": "read data",
"key": "read_data",
"type": "item-read",
"position_x": 52,
"position_y": 2,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "itemSecrets",
"query": {
"filter": {
"secret": {
"_eq": "{{$trigger.body.secret}}"
}
}
}
},
"resolve": "0ef676a7-39b0-491e-8f42-21033af08078",
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "ae1677c8-3114-4015-9115-b9e763a7d5e1"
},
{
"name": "Read Layer IDs",
"key": "read_layers_ids",
"type": "item-read",
"position_x": 37,
"position_y": 1,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "layers_directus_users_1",
"key": [],
"query": {
"filter": {
"layers_id": {
"_eq": "{{$last.layer}}"
}
},
"fields": "directus_users_id"
}
},
"resolve": "00e09aa0-d3d3-492a-8a17-f9b74f421954",
"reject": null,
"flow": "bff21ad9-d142-4a6e-96fe-8da016576bc7",
"_syncId": "0be87499-c06d-4cf9-9212-27729ec5ad4e"
},
{
"name": "read user items",
"key": "read_user_items",
"type": "item-read",
"position_x": 19,
"position_y": 2,
"options": {
"permissions": "$full",
"emitEvents": false,
"collection": "items",
"query": {
"filter": {
"user_created": {
"_eq": "{{$accountability.user}}"
}
}
}
},
"resolve": "feca5834-de50-4593-9df4-7f9ec81f8c71",
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "020070b2-cf09-4a0d-82d0-c90b334a70cc"
},
{
"name": "Webhook / Request URL",
"key": "request_dvnuy",
"type": "request",
"position_x": 31,
"position_y": 24,
"options": {
"method": "POST",
"url": "https://test-index.murmurations.network/v2/nodes",
"headers": [
{
"header": "accept",
"value": "application/json"
},
{
"header": "Content-Type",
"value": "application/json"
}
],
"body": "{\n \"profile_url\": \"https://somenode.org/optional-subdirectory/node-profile.json\"\n}"
},
"resolve": null,
"reject": null,
"flow": "5e320392-429d-4759-95ec-c5adcff61f01",
"_syncId": "6d14f1a8-cd2b-4dc1-9df3-5297f1e99cf0"
},
{
"name": "Webhook updated",
"key": "request_juotc",
"type": "request",
"position_x": 48,
"position_y": 1,
"options": {
"url": "https://telegram-bot.utopia-lab.org/send_message",
"method": "POST",
"body": "{\"message\": \"**[{{$trigger.payload.name}}]({{$accountability.origin}}/item/{{$trigger.payload.id}})** updated\"}",
"headers": [
{
"header": "Content-Type",
"value": "application/json"
}
]
},
"resolve": null,
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "4cd7018f-74a1-4cae-b185-3ee2b82ae1bd"
},
{
"name": "Webhook created",
"key": "request_juotc_izixm",
"type": "request",
"position_x": 48,
"position_y": 17,
"options": {
"url": "https://telegram-bot.utopia-lab.org/send_message",
"method": "POST",
"body": "{\"message\": \"**[{{$trigger.payload.name}}]({{$accountability.origin}}/item/{{$trigger.payload.id}})** created\"}",
"headers": [
{
"header": "Content-Type",
"value": "application/json"
}
]
},
"resolve": null,
"reject": null,
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "05cdab2d-9373-494a-a13b-9a8cd6b9ea90"
},
{
"name": "return inviting item",
"key": "return_inviting_item",
"type": "exec",
"position_x": 56,
"position_y": 36,
"options": {
"code": "module.exports = async function(data) {\n\treturn data.read_data[0].item\n}"
},
"resolve": null,
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "5583fd94-c481-4a08-8632-115a2ce85577"
},
{
"name": "return inviting item",
"key": "return_inviting_item_uxzvf",
"type": "exec",
"position_x": 54,
"position_y": 19,
"options": {
"code": "module.exports = async function(data) {\n\treturn data.read_data[0].item\n}"
},
"resolve": null,
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "34a6106b-7789-4212-8bdc-e54798e2eca7"
},
{
"name": "singelton",
"key": "singelton",
"type": "exec",
"position_x": 57,
"position_y": 16,
"options": {
"code": "module.exports = async function(data) {\n\treturn data.$last[0].count\n}"
},
"resolve": "432dcfa2-28c5-4d75-884f-706877984bd6",
"reject": null,
"flow": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1",
"_syncId": "a1df90fb-43dd-4753-b1d5-437c2eb8ad9f"
},
{
"name": "slugify",
"key": "slugify",
"type": "exec",
"position_x": 19,
"position_y": 1,
"options": {
"code": "module.exports = async function (data) {\n\tconst text = data.$trigger.payload.name;\n\n\tconst slug = text\n\t\t.toLowerCase()\n\t\t.trim()\n\t\t.replace(/[^\\w\\s-]/g, '')\n\t\t.replace(/[\\s_-]+/g, '-')\n\t\t.replace(/^-+|-+$/g, '');\n\n\treturn slug;\n};"
},
"resolve": "ac036523-bc4d-4230-9475-01085fa4f8e1",
"reject": null,
"flow": "f2beb617-9c21-48b2-a8ec-c04197d1b7d1",
"_syncId": "c7c8e08e-e94d-41f1-9b69-70251b2d3caf"
},
{
"name": "test item ownership",
"key": "test_item_ownership",
"type": "exec",
"position_x": 36,
"position_y": 2,
"options": {
"code": "module.exports = async function(data) {\n\tif (!data.$last.some(item => item.id === data.$trigger.body.item)) {\n throw new Error('Not your item')\n }\n return {};\n}"
},
"resolve": "ae1677c8-3114-4015-9115-b9e763a7d5e1",
"reject": null,
"flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4",
"_syncId": "feca5834-de50-4593-9df4-7f9ec81f8c71"
},
{
"name": "Trigger Send Email",
"key": "trigger_4tvps",
"type": "trigger",
"position_x": 73,
"position_y": 1,
"options": {
"iterationMode": "parallel",
"flow": "d7e74f35-a19a-4a0b-9ae8-59af2fa0f081",
"payload": "{{$last}}"
},
"resolve": null,
"reject": null,
"flow": "bff21ad9-d142-4a6e-96fe-8da016576bc7",
"_syncId": "661c5585-4833-46b0-82aa-72be37ec0ff2"
},
{
"name": "trigger create secret flow",
"key": "trigger_create_secret_flow",
"type": "trigger",
"position_x": 55,
"position_y": 1,
"options": {
"iterationMode": "parallel",
"payload": "{{ $last }}",
"flow": "234d13fe-112a-4408-9bdb-78dd8cbd6b82"
},
"resolve": null,
"reject": null,
"flow": "9a1d1084-438f-471e-aac5-47e0749375e7",
"_syncId": "2d4009c7-0a19-4c55-813c-f1e0f3de1bf0"
},
{
"name": "Updated?",
"key": "updated",
"type": "condition",
"position_x": 21,
"position_y": 1,
"options": {
"filter": {
"$trigger": {
"event": {
"_eq": "items.items.update"
}
}
}
},
"resolve": "4cd7018f-74a1-4cae-b185-3ee2b82ae1bd",
"reject": "05cdab2d-9373-494a-a13b-9a8cd6b9ea90",
"flow": "a78d01a4-13b3-46a4-8938-9606bf26e329",
"_syncId": "8cc15ed4-8372-4a45-abaa-df19d560b01a"
}
]

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
{
"name": "Administrator",
"icon": "verified",
"description": "$t:admin_description",
"description": "$t:admin_policy_description",
"ip_access": null,
"enforce_tfa": false,
"admin_access": true,
@ -10,11 +10,63 @@
"roles": [
{
"role": "_sync_default_admin_role",
"sort": null
"sort": 1
}
],
"_syncId": "_sync_default_admin_policy"
},
{
"name": "App Access",
"icon": "badge",
"description": null,
"ip_access": null,
"enforce_tfa": false,
"admin_access": false,
"app_access": true,
"roles": [
{
"role": null,
"sort": 1
},
{
"role": null,
"sort": 1
}
],
"_syncId": "_sync_default_public_policy"
},
{
"name": "Zapier",
"icon": "badge",
"description": null,
"ip_access": null,
"enforce_tfa": false,
"admin_access": false,
"app_access": false,
"roles": [
{
"role": null,
"sort": null
}
],
"_syncId": "5bea7f79-7a78-4ec4-85bd-3327c0febfc7"
},
{
"name": "Editor",
"icon": "supervised_user_circle",
"description": null,
"ip_access": null,
"enforce_tfa": false,
"admin_access": false,
"app_access": true,
"roles": [
{
"role": "a65f6094-ba98-42d3-940b-07934959e3fb",
"sort": 1
}
],
"_syncId": "ab3d3699-a59d-43fc-99e1-ffc2d0a65c0d"
},
{
"name": "$t:public_label",
"icon": "public",
@ -29,6 +81,38 @@
"sort": 1
}
],
"_syncId": "_sync_default_public_policy"
"_syncId": "ae878d38-3e1a-476f-8dba-e3ae56d19d4a"
},
{
"name": "Registrated",
"icon": "paragliding",
"description": null,
"ip_access": null,
"enforce_tfa": false,
"admin_access": false,
"app_access": false,
"roles": [
{
"role": "9865ace7-27fe-4d1f-be88-99ee6410fca2",
"sort": 1
}
],
"_syncId": "b16453e3-676b-49d6-917b-6d6f81089114"
},
{
"name": "Würdekompass Admin",
"icon": "supervised_user_circle",
"description": null,
"ip_access": null,
"enforce_tfa": false,
"admin_access": false,
"app_access": true,
"roles": [
{
"role": "faa59737-2277-4f8a-a2ab-23940f566ab5",
"sort": 1
}
],
"_syncId": "dc5f8f91-d104-4e7d-8752-44db81ff12c4"
}
]

View File

@ -5,5 +5,26 @@
"description": "$t:admin_description",
"parent": null,
"_syncId": "_sync_default_admin_role"
},
{
"name": "Registrated",
"icon": "paragliding",
"description": null,
"parent": null,
"_syncId": "9865ace7-27fe-4d1f-be88-99ee6410fca2"
},
{
"name": "Editor",
"icon": "supervised_user_circle",
"description": null,
"parent": null,
"_syncId": "a65f6094-ba98-42d3-940b-07934959e3fb"
},
{
"name": "Würdekompass Admin",
"icon": "supervised_user_circle",
"description": null,
"parent": null,
"_syncId": "faa59737-2277-4f8a-a2ab-23940f566ab5"
}
]

View File

@ -1 +1,65 @@
[]
[
{
"project_name": "Utopia Map",
"project_color": "#99C1F1",
"public_note": null,
"auth_login_attempts": 25,
"auth_password_policy": null,
"storage_asset_transform": "all",
"storage_asset_presets": null,
"custom_css": null,
"storage_default_folder": null,
"basemaps": null,
"mapbox_key": null,
"module_bar": [
{
"type": "module",
"id": "content",
"enabled": true
},
{
"type": "module",
"id": "visual",
"enabled": false
},
{
"type": "module",
"id": "users",
"enabled": true
},
{
"type": "module",
"id": "files",
"enabled": true
},
{
"type": "module",
"id": "insights",
"enabled": false
},
{
"type": "module",
"id": "settings",
"enabled": true,
"locked": true
}
],
"project_descriptor": "collaborative Mapping",
"default_language": "en-US",
"custom_aspect_ratios": null,
"default_appearance": "auto",
"default_theme_light": null,
"theme_light_overrides": null,
"default_theme_dark": null,
"theme_dark_overrides": null,
"report_error_url": null,
"report_bug_url": null,
"report_feature_url": null,
"public_registration": false,
"public_registration_verify_email": true,
"public_registration_role": null,
"public_registration_email_filter": null,
"visual_editor_urls": null,
"_syncId": "0c18d64f-a3d1-4c3b-bad1-e1f822fc5d72"
}
]

View File

@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="18mm"
height="16mm"
viewBox="0 0 17.999999 16.000001"
version="1.1"
id="svg119"
sodipodi:docname="3markers-globe.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs113" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.24"
inkscape:cx="25.927734"
inkscape:cy="34.61914"
inkscape:document-units="mm"
inkscape:current-layer="layer6"
showgrid="false"
fit-margin-right="-0.1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:pagecheckerboard="0" />
<metadata
id="metadata116">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Ebene 4"
style="display:inline"
transform="translate(0,-4.809948)">
<path
inkscape:connector-curvature="0"
style="display:inline;fill:#aad400;stroke-width:0.26458332;fill-opacity:1"
d="m 8.5782875,9.4721385 c -2.9104166,0 -5.2916666,2.3812505 -5.2916666,5.2916675 0,2.910417 2.38125,5.291667 5.2916666,5.291667 2.9104165,0 5.2916665,-2.38125 5.2916665,-5.291667 0,-2.910417 -2.38125,-5.2916675 -5.2916665,-5.2916675 z"
id="path2" />
<path
inkscape:connector-curvature="0"
style="display:inline;fill:#31b0fd;stroke-width:0.26458332;fill-opacity:1"
d="m 14.134538,14.763806 c 0,3.095625 -2.513542,5.55625 -5.5562505,5.55625 -3.0427082,0 -5.5562499,-2.460625 -5.5562499,-5.55625 0,-3.095625 2.460625,-5.5562505 5.5562499,-5.5562505 3.0956255,0 5.5562505,2.4606255 5.5562505,5.5562505 z m -5.6091675,2.566458 c 0,-0.105833 -0.05292,-0.15875 -0.15875,-0.211666 -0.3439579,-0.105834 -0.6614579,-0.105834 -0.9524996,-0.396875 -0.052917,-0.105834 -0.052917,-0.211667 -0.1058333,-0.343959 -0.1058333,-0.105833 -0.396875,-0.15875 -0.555625,-0.211666 -0.2116667,0 -0.4497917,0 -0.714375,0 -0.1058333,0 -0.2910417,0 -0.396875,0 -0.15875,-0.05292 -0.2910417,-0.291042 -0.396875,-0.449792 0,-0.05292 0,-0.15875 -0.1058333,-0.15875 -0.1058334,-0.05292 -0.2116667,0.05292 -0.3439584,0 -0.052917,-0.05292 -0.052917,-0.105833 -0.052917,-0.15875 0,-0.15875 0.1058333,-0.343958 0.2116666,-0.449792 0.15875,-0.105833 0.3439584,0.05292 0.5027084,0.05292 0.052917,0 0.052917,0 0.1058333,0.05292 0.15875,0.05292 0.2116667,0.264583 0.2116667,0.449791 0,0.05292 0,0.105834 0,0.105834 0,0.05292 0.052917,0.05292 0.1058333,0.05292 0.052917,-0.291041 0.052917,-0.555625 0.1058333,-0.846666 0,-0.343959 0.3439584,-0.661459 0.6085417,-0.767292 0.1058333,-0.05292 0.15875,0.05292 0.2910417,0 0.3439583,-0.105833 1.1641666,-0.449792 1.0054166,-0.899583 -0.1058333,-0.396875 -0.4497916,-0.767292 -0.8995833,-0.714375 -0.1058333,0.05292 -0.15875,0.105833 -0.2645833,0.15875 -0.15875,0.105833 -0.5027084,0.449791 -0.6614584,0.449791 -0.2910416,-0.05292 -0.2910416,-0.449791 -0.2116666,-0.608541 0.052917,-0.211667 0.555625,-0.9525 0.8995833,-0.820209 0.052917,0.05292 0.15875,0.15875 0.2116667,0.211667 0.1058333,0.05292 0.2910416,0.05292 0.4497916,0.05292 0.052917,0 0.1058334,0 0.15875,-0.05292 0.052917,-0.05292 0.052917,-0.05292 0.052917,-0.105833 0,-0.15875 -0.15875,-0.343959 -0.2645833,-0.449792 -0.1058334,-0.105833 -0.2910417,-0.211667 -0.4497917,-0.291042 -0.555625,-0.15875 -1.4552083,0.05292 -1.8785417,0.449792 -0.4233333,0.396875 -0.7672916,1.058333 -1.0054166,1.613958 -0.1058334,0.343959 -0.2116667,0.767292 -0.2645834,1.164167 -0.052917,0.264583 -0.1058333,0.502708 0.052917,0.767292 0.15875,0.343958 0.5027083,0.661458 0.8466667,0.899583 0.2116666,0.15875 0.6614583,0.15875 0.8995833,0.449792 0.15875,0.211666 0.1058333,0.502708 0.1058333,0.767291 0,0.343959 0.2116667,0.608542 0.3439584,0.899584 0.052917,0.15875 0.1058333,0.396875 0.15875,0.555625 0,0.05292 0.052917,0.396875 0.052917,0.449791 0.3439584,0.15875 0.6085417,0.343959 1.0054167,0.449792 0.052917,0 0.2645833,-0.343958 0.2645833,-0.396875 0.15875,-0.15875 0.2910417,-0.396875 0.4497917,-0.502708 0.1058333,-0.05292 0.2116663,-0.105834 0.3439583,-0.211667 0.105833,-0.105833 0.15875,-0.343958 0.211667,-0.502708 0.02646,-0.132292 0.07937,-0.343959 0.02646,-0.502709 z m 0.105834,-5.132916 c 0.05292,0 0.105833,-0.05292 0.211666,-0.105834 0.15875,-0.105833 0.343959,-0.291041 0.502709,-0.396875 0.15875,-0.105833 0.343958,-0.291041 0.449791,-0.396875 0.15875,-0.105833 0.2910415,-0.343958 0.3439585,-0.502708 0.05292,-0.105833 0.211666,-0.343958 0.15875,-0.502708 -0.05292,-0.105834 -0.3439585,-0.15875 -0.4497915,-0.211667 -0.449792,-0.1058335 -0.820208,-0.1587505 -1.27,-0.1587505 -0.15875,0 -0.396875,0.05292 -0.449792,0.2116675 -0.05292,0.291041 0.15875,0.211666 0.396875,0.291041 0,0 0.05292,0.449792 0.05292,0.502709 0.05292,0.264583 -0.105833,0.449791 -0.105833,0.714375 0,0.15875 0,0.449791 0.105833,0.555625 z m 4.6566665,3.889375 c 0.05292,-0.105834 0.05292,-0.291042 0.105833,-0.396875 0.05292,-0.264584 0.05292,-0.555625 0.05292,-0.820209 0,-0.555625 -0.05292,-1.11125 -0.211666,-1.613958 -0.105834,-0.15875 -0.15875,-0.343958 -0.211667,-0.502708 -0.105833,-0.291042 -0.264583,-0.555625 -0.502708,-0.767292 -0.211667,-0.291042 -0.502709,-1.058333 -1.005417,-0.820208 -0.15875,0.05292 -0.264583,0.264583 -0.396875,0.396875 -0.105833,0.15875 -0.211667,0.343958 -0.343959,0.502708 -0.05292,0.05292 -0.105833,0.15875 -0.05292,0.211667 0,0.05292 0.05292,0.05292 0.105834,0.05292 0.105833,0.05292 0.15875,0.05292 0.264583,0.105834 0.05292,0 0.105834,0.05292 0.05292,0.105833 0,0 0,0.05292 -0.05292,0.05292 -0.264583,0.291041 -0.555625,0.502708 -0.820208,0.767291 -0.05292,0.05292 -0.105834,0.15875 -0.105834,0.211667 0,0.05292 0.05292,0.05292 0.05292,0.105833 0,0.05292 -0.05292,0.05292 -0.105833,0.105834 -0.105832,0.05292 -0.2116665,0.105833 -0.2910415,0.15875 -0.05292,0.105833 0,0.291041 -0.05292,0.396875 -0.05292,0.291041 -0.211666,0.502708 -0.343958,0.767291 -0.105833,0.15875 -0.15875,0.343959 -0.264583,0.502709 0,0.211666 -0.05292,0.396875 0.05292,0.555625 0.264583,0.396875 0.767291,0.15875 1.1641655,0.343958 0.105834,0.05292 0.211667,0.05292 0.291042,0.15875 0.15875,0.15875 0.15875,0.449792 0.211667,0.608542 0.05292,0.211666 0.105833,0.449791 0.211667,0.661458 0.05292,0.264583 0.15875,0.555625 0.211666,0.767292 0.502709,-0.396875 0.9525,-0.820209 1.27,-1.375834 0.396875,-0.343958 0.555625,-0.79375 0.714375,-1.243541 z"
id="path4" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Ebene 2"
style="display:inline"
transform="translate(4.6675853,46.091266)">
<g
id="g89"
transform="rotate(-34.618495,35.488753,-41.431433)">
<g
id="g356"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.1012137,-0.03262355,0.01210909,0.10427296,3.1730944,-59.40221)"
stroke-miterlimit="2"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-opacity:1">
<image
id="image354"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABoUlEQVRIic2Vy3LCMAxFD2lS6Gtg0f//x0JoEwKmC98LqklCZ7qpZjSynYdOrmQH/pEtJtarYlxNrM89V1oaiSnMR2Gq4HVwry0m4OZgnPAInBUPikdfd5LyhTXwKF8CK+ChgIrPTSl8DjBJAINiBXQBMtUzIC/Aq+JKa02AmAIwRCzDSQl7uQFqRdCktErJ34A1sBFQU8DYUhi7BGeyAkfFgdteORfP3sBYmaUANsA7WSErU4L4pafgA7msveYprLtM7plLE48pY6gl8CyQNfCkBLaY3Ar0Gp/I/fAFfAJ7je2dYBLXMt30jEHsDblk7ptGShjAfeAvPyh5B2wDyF5rPSO7aE6ZSAvXrdzofpfGQBFgB7SaO1qNsjRwp2cM4i+OsrqffK3VtZ08wrg8VsIl+XHIlVaPXHT9nWgrVQYBHZS4lRugJ5ej1b1dUOHSF3rHKNCYMj6cdlxP3J7cwGhsGAO7DLM9MTKehfHNhnFJPsi7K4WvngOYTDhnU1v7yPWoTuT6+1fgph3COPGLnrhnUz/KCFuHseGiAnHn/cm+AU9X31BIhxprAAAAAElFTkSuQmCC"
preserveAspectRatio="none"
height="16"
width="35"
y="-6.5234251"
x="3.2418795"
transform="rotate(32.792589)" />
</g>
<g
id="g522"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.13120595,0,0,0.13120595,2.0117562,-64.499292)"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#c4037d;fill-opacity:1;stroke:none">
<path
id="path520"
d="M 28.205,3.217 H 6.777 c -2.367,0 -4.286,1.87 -4.286,4.179 v 19.847 c 0,2.308 1.919,4.179 4.286,4.179 h 5.357 l 5.337,13.58 5.377,-13.58 h 5.357 c 2.366,0 4.285,-1.87 4.285,-4.179 V 7.396 c 0,-2.308 -1.919,-4.179 -4.285,-4.179"
inkscape:connector-curvature="0"
style="vector-effect:none;fill-rule:nonzero" />
</g>
<g
id="g550"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.13915785,0,0,0.13915785,1.8725982,-64.608673)"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#ffffff;fill-opacity:1;stroke:none">
<path
id="path548"
d="m 11.875,22.4375 c 0,0.3646 0.1276,0.6745 0.3828,0.9297 0.2552,0.2552 0.5651,0.3828 0.9297,0.3828 h 9.625 c 0.3646,0 0.6745,-0.1276 0.9297,-0.3828 0.2552,-0.2552 0.3828,-0.5651 0.3828,-0.9297 V 15 h -12.25 v 7.4375 m 8.75,-5.3594 c 0,-0.0937 0.0313,-0.1718 0.0938,-0.2343 0.0625,-0.0625 0.1406,-0.0938 0.2343,-0.0938 h 1.0938 c 0.0937,0 0.1719,0.0313 0.2344,0.0938 0.0625,0.0625 0.0937,0.1406 0.0937,0.2343 v 1.0938 c 0,0.0937 -0.0312,0.1719 -0.0937,0.2344 C 22.2188,18.4688 22.1406,18.5 22.0469,18.5 h -1.0938 c -0.0937,0 -0.1718,-0.0312 -0.2343,-0.0937 -0.0625,-0.0625 -0.0938,-0.1407 -0.0938,-0.2344 v -1.0938 m 0,3.5 c 0,-0.0937 0.0313,-0.1718 0.0938,-0.2343 0.0625,-0.0625 0.1406,-0.0938 0.2343,-0.0938 h 1.0938 c 0.0937,0 0.1719,0.0313 0.2344,0.0938 0.0625,0.0625 0.0937,0.1406 0.0937,0.2343 v 1.0938 c 0,0.0937 -0.0312,0.1719 -0.0937,0.2344 C 22.2188,21.9688 22.1406,22 22.0469,22 H 20.9531 C 20.8594,22 20.7813,21.9688 20.7188,21.9063 20.6563,21.8438 20.625,21.7656 20.625,21.6719 v -1.0938 m -3.5,-3.5 c 0,-0.0937 0.0313,-0.1718 0.0938,-0.2343 0.0625,-0.0625 0.1406,-0.0938 0.2343,-0.0938 h 1.0938 c 0.0937,0 0.1719,0.0313 0.2344,0.0938 0.0625,0.0625 0.0937,0.1406 0.0937,0.2343 v 1.0938 c 0,0.0937 -0.0312,0.1719 -0.0937,0.2344 C 18.7188,18.4688 18.6406,18.5 18.5469,18.5 h -1.0938 c -0.0937,0 -0.1718,-0.0312 -0.2343,-0.0937 -0.0625,-0.0625 -0.0938,-0.1407 -0.0938,-0.2344 v -1.0938 m 0,3.5 c 0,-0.0937 0.0313,-0.1718 0.0938,-0.2343 0.0625,-0.0625 0.1406,-0.0938 0.2343,-0.0938 h 1.0938 c 0.0937,0 0.1719,0.0313 0.2344,0.0938 0.0625,0.0625 0.0937,0.1406 0.0937,0.2343 v 1.0938 c 0,0.0937 -0.0312,0.1719 -0.0937,0.2344 C 18.7188,21.9688 18.6406,22 18.5469,22 H 17.4531 C 17.3594,22 17.2813,21.9688 17.2188,21.9063 17.1563,21.8438 17.125,21.7656 17.125,21.6719 v -1.0938 m -3.5,-3.5 c 0,-0.0937 0.0313,-0.1718 0.0938,-0.2343 0.0625,-0.0625 0.1406,-0.0938 0.2343,-0.0938 h 1.0938 c 0.0937,0 0.1719,0.0313 0.2344,0.0938 0.0625,0.0625 0.0937,0.1406 0.0937,0.2343 v 1.0938 c 0,0.0937 -0.0312,0.1719 -0.0937,0.2344 C 15.2188,18.4688 15.1406,18.5 15.0469,18.5 h -1.0938 c -0.0937,0 -0.1718,-0.0312 -0.2343,-0.0937 -0.0625,-0.0625 -0.0938,-0.1407 -0.0938,-0.2344 v -1.0938 m 0,3.5 c 0,-0.0937 0.0313,-0.1718 0.0938,-0.2343 0.0625,-0.0625 0.1406,-0.0938 0.2343,-0.0938 h 1.0938 c 0.0937,0 0.1719,0.0313 0.2344,0.0938 0.0625,0.0625 0.0937,0.1406 0.0937,0.2343 v 1.0938 c 0,0.0937 -0.0312,0.1719 -0.0937,0.2344 C 15.2188,21.9688 15.1406,22 15.0469,22 H 13.9531 C 13.8594,22 13.7813,21.9688 13.7188,21.9063 13.6563,21.8438 13.625,21.7656 13.625,21.6719 V 20.5781 M 22.8125,11.5 H 21.5 V 10.1875 C 21.5,10.0625 21.4583,9.95833 21.375,9.875 21.2917,9.79167 21.1875,9.75 21.0625,9.75 h -0.875 c -0.125,0 -0.2292,0.04167 -0.3125,0.125 -0.0833,0.08333 -0.125,0.1875 -0.125,0.3125 V 11.5 h -3.5 V 10.1875 C 16.25,10.0625 16.2083,9.95833 16.125,9.875 16.0417,9.79167 15.9375,9.75 15.8125,9.75 h -0.875 c -0.125,0 -0.2292,0.04167 -0.3125,0.125 C 14.5417,9.95833 14.5,10.0625 14.5,10.1875 V 11.5 h -1.3125 c -0.3646,0 -0.6745,0.1276 -0.9297,0.3828 -0.2552,0.2552 -0.3828,0.5651 -0.3828,0.9297 v 1.3125 h 12.25 v -1.3125 c 0,-0.3646 -0.1276,-0.6745 -0.3828,-0.9297 C 23.487,11.6276 23.1771,11.5 22.8125,11.5"
inkscape:connector-curvature="0"
style="vector-effect:none;fill-rule:nonzero" />
</g>
<g
id="g356-3"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.1012137,-0.03262355,0.01210909,0.10427296,8.1741435,-58.851786)"
stroke-miterlimit="2"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-opacity:1">
<image
id="image354-6"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABoUlEQVRIic2Vy3LCMAxFD2lS6Gtg0f//x0JoEwKmC98LqklCZ7qpZjSynYdOrmQH/pEtJtarYlxNrM89V1oaiSnMR2Gq4HVwry0m4OZgnPAInBUPikdfd5LyhTXwKF8CK+ChgIrPTSl8DjBJAINiBXQBMtUzIC/Aq+JKa02AmAIwRCzDSQl7uQFqRdCktErJ34A1sBFQU8DYUhi7BGeyAkfFgdteORfP3sBYmaUANsA7WSErU4L4pafgA7msveYprLtM7plLE48pY6gl8CyQNfCkBLaY3Ar0Gp/I/fAFfAJ7je2dYBLXMt30jEHsDblk7ptGShjAfeAvPyh5B2wDyF5rPSO7aE6ZSAvXrdzofpfGQBFgB7SaO1qNsjRwp2cM4i+OsrqffK3VtZ08wrg8VsIl+XHIlVaPXHT9nWgrVQYBHZS4lRugJ5ej1b1dUOHSF3rHKNCYMj6cdlxP3J7cwGhsGAO7DLM9MTKehfHNhnFJPsi7K4WvngOYTDhnU1v7yPWoTuT6+1fgph3COPGLnrhnUz/KCFuHseGiAnHn/cm+AU9X31BIhxprAAAAAElFTkSuQmCC"
preserveAspectRatio="none"
height="13.833991"
width="32.70261"
y="-4.4695668"
x="2.8086059"
transform="matrix(0.82962222,0.55832515,-0.5232806,0.85216044,0,0)" />
</g>
<g
id="g356-3-7"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.1012137,-0.03262355,0.01210909,0.10427296,10.119996,-55.735617)"
stroke-miterlimit="2"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-opacity:1">
<image
id="image354-6-5"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABoUlEQVRIic2Vy3LCMAxFD2lS6Gtg0f//x0JoEwKmC98LqklCZ7qpZjSynYdOrmQH/pEtJtarYlxNrM89V1oaiSnMR2Gq4HVwry0m4OZgnPAInBUPikdfd5LyhTXwKF8CK+ChgIrPTSl8DjBJAINiBXQBMtUzIC/Aq+JKa02AmAIwRCzDSQl7uQFqRdCktErJ34A1sBFQU8DYUhi7BGeyAkfFgdteORfP3sBYmaUANsA7WSErU4L4pafgA7msveYprLtM7plLE48pY6gl8CyQNfCkBLaY3Ar0Gp/I/fAFfAJ7je2dYBLXMt30jEHsDblk7ptGShjAfeAvPyh5B2wDyF5rPSO7aE6ZSAvXrdzofpfGQBFgB7SaO1qNsjRwp2cM4i+OsrqffK3VtZ08wrg8VsIl+XHIlVaPXHT9nWgrVQYBHZS4lRugJ5ej1b1dUOHSF3rHKNCYMj6cdlxP3J7cwGhsGAO7DLM9MTKehfHNhnFJPsi7K4WvngOYTDhnU1v7yPWoTuT6+1fgph3COPGLnrhnUz/KCFuHseGiAnHn/cm+AU9X31BIhxprAAAAAElFTkSuQmCC"
preserveAspectRatio="none"
height="16"
width="35"
y="-2.0808461"
x="2.1253965"
transform="rotate(32.792589)" />
</g>
</g>
</g>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-58.269337,-115.53478)"
style="display:inline">
<g
id="g109"
transform="rotate(-1.1556361,1155.3307,302.61847)">
<g
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;fill:#e87520;fill-opacity:1;stroke:none"
transform="matrix(0.13120595,0,0,0.13120595,69.079628,93.634241)"
font-size="10"
font-weight="400"
font-style="normal"
id="g6701">
<path
style="vector-effect:none;fill-rule:nonzero"
inkscape:connector-curvature="0"
d="M 28.205,3.217 H 6.777 c -2.367,0 -4.286,1.87 -4.286,4.179 v 19.847 c 0,2.308 1.919,4.179 4.286,4.179 h 5.357 l 5.337,13.58 5.377,-13.58 h 5.357 c 2.366,0 4.285,-1.87 4.285,-4.179 V 7.396 c 0,-2.308 -1.919,-4.179 -4.285,-4.179"
id="path6699" />
</g>
<g
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;fill:#231f20;fill-opacity:0.2;stroke:none"
transform="matrix(0.14057447,0,0,-0.14057447,38.479791,112.89298)"
font-size="10"
font-weight="400"
font-style="normal"
id="g6709">
<path
style="vector-effect:none;fill-rule:nonzero"
inkscape:connector-curvature="0"
d="m 244,134 h -20 c -2.209,0 -4,-1.746 -4,-3.9 v -18.525 c 0,-2.154 1.791,-3.9 4,-3.9 h 5 L 233.982,95 239,107.675 h 5 c 2.209,0 4,1.746 4,3.9 V 130.1 c 0,2.154 -1.791,3.9 -4,3.9 m 0,-1 c 1.654,0 3,-1.301 3,-2.9 v -18.525 c 0,-1.599 -1.346,-2.9 -3,-2.9 h -5.68 l -0.25,-0.632 -4.084,-10.318 -4.055,10.316 -0.249,0.634 H 224 c -1.654,0 -3,1.301 -3,2.9 V 130.1 c 0,1.599 1.346,2.9 3,2.9 h 20"
id="path6707" />
</g>
<g
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;fill:#ffffff;fill-opacity:1;stroke:none"
transform="matrix(0.13915785,0,0,0.13915785,68.702265,93.556608)"
font-size="10"
font-weight="400"
font-style="normal"
id="g6729">
<path
style="vector-effect:none;fill-rule:nonzero"
inkscape:connector-curvature="0"
d="m 18.364194,16.757346 c 0.6354,0 1.224,-0.1562 1.7656,-0.4687 0.5417,-0.3125 0.9662,-0.737 1.2735,-1.2735 0.3073,-0.5364 0.4609,-1.1224 0.4609,-1.7578 0,-0.6354 -0.1536,-1.224 -0.4609,-1.7656 -0.3073,-0.5417 -0.7318,-0.9662 -1.2735,-1.2735 -0.5416,-0.3072494 -1.1302,-0.4608994 -1.7656,-0.4608994 -0.6354,0 -1.2214,0.15365 -1.7578,0.4608994 -0.5365,0.3073 -0.9609,0.7318 -1.2734,1.2735 -0.3125,0.5416 -0.4688,1.1302 -0.4688,1.7656 0,0.6354 0.1563,1.2214 0.4688,1.7578 0.3125,0.5365 0.7369,0.961 1.2734,1.2735 0.5364,0.3125 1.1224,0.4687 1.7578,0.4687 m 2.4688,0.875 h -0.4688 c -0.6354,0.2917 -1.2995,0.4375 -1.9922,0.4375 -0.6927,0 -1.362,-0.1458 -2.0078,-0.4375 h -0.4531 c -0.6563,0 -1.2683,0.1641 -1.836,0.4922 -0.5677,0.3281 -1.0156,0.7734 -1.3437,1.3359 -0.3281,0.5625 -0.4922,1.1719 -0.4922,1.8282 v 1.1562 c 0,0.3646 0.1276,0.6745 0.3828,0.9297 0.2552,0.2552 0.5651,0.3828 0.9297,0.3828 h 9.625 c 0.3646,0 0.6745,-0.1276 0.9297,-0.3828 0.2552,-0.2552 0.3828,-0.5651 0.3828,-0.9297 v -1.1562 c 0,-0.6563 -0.1641,-1.2657 -0.4922,-1.8282 -0.3281,-0.5625 -0.7734,-1.0078 -1.3359,-1.3359 -0.5625,-0.3281 -1.1719,-0.4922 -1.8281,-0.4922"
id="path6727" />
</g>
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Ebene 3"
style="display:inline"
transform="translate(4.6675853,46.091266)">
<g
id="g99"
transform="rotate(58.747582,-19.440046,-29.612246)">
<g
id="g678"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.12723008,0,0,0.12723008,-15.000979,-62.923636)"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#008e5b;fill-opacity:1;stroke:none">
<path
id="path676"
d="m 17.5,2.746 c -8.284,0 -15,6.853 -15,15.307 0,0.963 0.098,1.902 0.265,2.816 0.36664,2.0268 1.13579,3.9595 2.262,5.684 l 0.134,0.193 12.295,17.785 12.439,-17.863 0.056,-0.08 c 1.2093,-1.8462 2.0083,-3.9305 2.343,-6.112 0.123,-0.791 0.206,-1.597 0.206,-2.423 0,-8.454 -6.716,-15.307 -15,-15.307"
inkscape:connector-curvature="0"
style="vector-effect:none;fill-rule:nonzero" />
</g>
<g
id="g684"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.12723008,0,0,0.12723008,-15.000979,-62.923636)"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#2a71b0;fill-opacity:1;stroke:none">
<path
id="path682"
d="m 17.488,2.748 c -8.284,0 -15,6.853 -15,15.307 0,0.963 0.098,1.902 0.265,2.816 0.36664,2.0268 1.13579,3.9595 2.262,5.684 l 0.134,0.193 12.295,17.785 12.44,-17.863 0.055,-0.08 c 1.2093,-1.8462 2.0083,-3.9305 2.343,-6.112 0.124,-0.791 0.206,-1.597 0.206,-2.423 0,-8.454 -6.716,-15.307 -15,-15.307 m 0,1.071 c 7.68,0 13.929,6.386 13.929,14.236 0,0.685 -0.064,1.423 -0.193,2.258 -0.325,2.075 -1.059,3.99 -2.164,5.667 L 29.005,26.058 17.448,42.653 6.032,26.14 5.912,25.966 C 4.86177,24.3621 4.14583,22.5629 3.807,20.676 3.64649,19.8118 3.56383,18.935 3.56,18.056 3.56,10.205 9.809,3.819 17.488,3.819"
inkscape:connector-curvature="0"
style="vector-effect:none;fill-rule:nonzero;fill:#008000" />
</g>
<g
id="g702"
font-style="normal"
font-weight="400"
font-size="10"
transform="matrix(0.13915785,0,0,0.13915785,-15.279297,-63.122493)"
style="font-style:normal;font-weight:400;font-size:10px;font-family:Ubuntu;display:inline;fill:#ffffff;fill-opacity:1;stroke:none">
<path
id="path700"
d="m 18,9.96875 c -1.2187,0 -2.349,0.30465 -3.3906,0.91405 -1.0417,0.6094 -1.8672,1.4349 -2.4766,2.4766 -0.6094,1.0416 -0.914,2.1719 -0.914,3.3906 0,1.2188 0.3046,2.349 0.914,3.3906 0.6094,1.0417 1.4349,1.8672 2.4766,2.4766 1.0416,0.6094 2.1719,0.9141 3.3906,0.9141 1.2188,0 2.349,-0.3047 3.3906,-0.9141 1.0417,-0.6094 1.8672,-1.4349 2.4766,-2.4766 0.6094,-1.0416 0.9141,-2.1718 0.9141,-3.3906 0,-1.2187 -0.3047,-2.349 -0.9141,-3.3906 C 23.2578,12.3177 22.4323,11.4922 21.3906,10.8828 20.349,10.2734 19.2188,9.96875 18,9.96875"
inkscape:connector-curvature="0"
style="vector-effect:none;fill-rule:nonzero" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,20 @@
#!/bin/sh
# base setup
SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
ROOT_DIR=$SCRIPT_DIR/../../..
DATA_DIR=$ROOT_DIR/data
DATA_UPLOADS_DIR=$DATA_DIR/uploads
SEED_FILES_DIR=$SCRIPT_DIR/files
SEED_SQL_DIR=$SCRIPT_DIR/sql
# copy files
cp $SEED_FILES_DIR/* $DATA_UPLOADS_DIR/
# apply database updates
for filename in $SEED_SQL_DIR/*.sql; do
docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql -v ON_ERROR_STOP=1 --username directus directus" < $filename
done

View File

@ -0,0 +1,7 @@
DELETE FROM public.directus_files WHERE id = '412c25dc-a3b7-4114-b64b-cac2d6b46db3';
COPY public.directus_files (id, storage, filename_disk, filename_download, title, type, folder, uploaded_by, created_on, modified_by, modified_on, charset, filesize, width, height, duration, embed, description, location, tags, metadata, focal_point_x, focal_point_y, tus_id, tus_data, uploaded_on) FROM stdin;
412c25dc-a3b7-4114-b64b-cac2d6b46db3 local 412c25dc-a3b7-4114-b64b-cac2d6b46db3.svg utopia-logo.svg utopia-logo image/svg+xml \N \N 2025-08-12 11:26:36.539+00 \N 2025-08-12 11:27:07.646+00 \N 22906 \N \N \N \N \N \N \N \N \N \N \N \N 2025-08-12 11:26:36.555+00
\.
UPDATE public.directus_settings SET project_logo = '412c25dc-a3b7-4114-b64b-cac2d6b46db3';

View File

@ -0,0 +1,26 @@
{
"collection": "layers",
"meta": {
"insert_order": 1,
"create": true,
"update": true,
"delete": true,
"preserve_ids": false,
"ignore_on_update": []
},
"data": [
{
"_sync_id": "layer-places",
"name": "Places",
"itemType": "type-test",
"userProfileLayer": false,
"menuColor": "#2ECDA7",
"markerDefaultColor2": null,
"onlyOnePerOwner": false,
"index_plus_button": true,
"public_edit_items": false,
"listed": true,
"item_presets": null
}
]
}

View File

@ -0,0 +1,18 @@
{
"collection": "layers_maps",
"meta": {
"insert_order": 1,
"create": true,
"update": true,
"delete": true,
"preserve_ids": false,
"ignore_on_update": []
},
"data": [
{
"_sync_id": "layer-places-map-local-development",
"layers_id": "layer-places",
"maps_id": "map-local-development"
}
]
}

View File

@ -0,0 +1,30 @@
{
"collection": "maps",
"meta": {
"insert_order": 1,
"create": true,
"update": true,
"delete": true,
"preserve_ids": false,
"ignore_on_update": []
},
"data": [
{
"_sync_id": "map-local-development",
"name": "Local Development",
"url": "http://local.development",
"zoom": 6,
"own_tag_space": true,
"center": {
"type": "Point",
"coordinates": [
10.067625824315172,
50.51565268622562
]
},
"donation_widget": false,
"custom_text": "# Welcome to the Development Server\n\nThis map is just for development purposes and to try out new things.",
"default_theme": null
}
]
}

View File

@ -0,0 +1,22 @@
{
"collection": "types",
"meta": {
"insert_order": 1,
"create": true,
"update": true,
"delete": true,
"preserve_ids": false,
"ignore_on_update": []
},
"data": [
{
"_sync_id": "type-test",
"user_created": null,
"date_created": "2025-01-01T00:00:00.000Z",
"user_updated": null,
"date_updated": null,
"name": "test",
"template": "flex"
}
]
}

View File

@ -0,0 +1,25 @@
{
"collection": "Landingpage",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "Landingpage",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "house",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 9,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "Themes",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "Themes",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": null,
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 21,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "Themes"
}
}

View File

@ -0,0 +1,25 @@
{
"collection": "UI_Components",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "UI_Components",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "code_blocks",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 16,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
}
}

View File

@ -0,0 +1,25 @@
{
"collection": "UI_Config",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "UI_Config",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "palette",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 17,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "attestations",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "attestations",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "favorite",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 8,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "attestations"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "attestations_directus_users",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "attestations_directus_users",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 15,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "attestations_directus_users"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "contactInfos",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "contactInfos",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "phone_enabled",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 5,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "contactInfos"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "crowdfundings",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "crowdfundings",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "bitcoin",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 3,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "crowdfundings"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "features",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": "archived",
"collapse": "open",
"collection": "features",
"color": null,
"display_template": null,
"group": "Landingpage",
"hidden": false,
"icon": null,
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 2,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
"versioning": false
},
"schema": {
"name": "features"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "gallery",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "gallery",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "imagesmode",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 8,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "gallery"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "groupSubheaders",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "groupSubheaders",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "call_to_action",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 4,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "groupSubheaders"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "groupSubheaders_groupTypes",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "groupSubheaders_groupTypes",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 18,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "groupSubheaders_groupTypes"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "groupTypes",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "groupTypes",
"color": null,
"display_template": "{{color}} {{name}}",
"group": "UI_Config",
"hidden": false,
"icon": "groups",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 2,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "groupTypes"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "inviteLinks",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "inviteLinks",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "qr_code_2",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 2,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "inviteLinks"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "itemSecrets",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "itemSecrets",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "vpn_key",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 22,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "itemSecrets"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "items",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "items",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "location_on",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 4,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "items"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "items_files",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "items_files",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 20,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "items_files"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "items_items",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "items_items",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 10,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "items_items"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "items_tags",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "items_tags",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 13,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "items_tags"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "items_tags_1",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "items_tags_1",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 14,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "items_tags_1"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "junction_directus_users_tags",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "junction_directus_users_tags",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 5,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "junction_directus_users_tags"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "junction_directus_users_tags_1",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "junction_directus_users_tags_1",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 6,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "junction_directus_users_tags_1"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "layers",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "layers",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "checklist",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 2,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "layers"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "layers_directus_users_1",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "layers_directus_users_1",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 23,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "layers_directus_users_1"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "layers_files",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "layers_files",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 11,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "layers_files"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "layers_maps",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "layers_maps",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 12,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "layers_maps"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "maps",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "maps",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "map",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 1,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "maps"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "marker_icons",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "marker_icons",
"color": null,
"display_template": null,
"group": "UI_Config",
"hidden": false,
"icon": "home_pin",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 1,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "marker_icons"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "oceannomads_profiles",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "oceannomads_profiles",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": null,
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": null,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "oceannomads_profiles"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "relations",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "relations",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "arrows_outward",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 1,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "relations"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "startEnd",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "startEnd",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "calendar_month",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 7,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "startEnd"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "tags",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "tags",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "label",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 7,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "tags"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "team",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": "archived",
"collapse": "open",
"collection": "team",
"color": null,
"display_template": null,
"group": "Landingpage",
"hidden": false,
"icon": "groups",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 1,
"sort_field": null,
"translations": null,
"unarchive_value": "draft",
"versioning": false
},
"schema": {
"name": "team"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "texts",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "texts",
"color": null,
"display_template": null,
"group": "UI_Components",
"hidden": false,
"icon": "format_align_left",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 6,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "texts"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "types",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "types",
"color": null,
"display_template": null,
"group": null,
"hidden": false,
"icon": "play_shapes",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 3,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "types"
}
}

View File

@ -0,0 +1,28 @@
{
"collection": "types_profileTemplate",
"meta": {
"accountability": "all",
"archive_app_filter": true,
"archive_field": null,
"archive_value": null,
"collapse": "open",
"collection": "types_profileTemplate",
"color": null,
"display_template": null,
"group": null,
"hidden": true,
"icon": "import_export",
"item_duplication_fields": null,
"note": null,
"preview_url": null,
"singleton": false,
"sort": 19,
"sort_field": null,
"translations": null,
"unarchive_value": null,
"versioning": false
},
"schema": {
"name": "types_profileTemplate"
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "Themes",
"field": "theme",
"type": "string",
"meta": {
"collection": "Themes",
"conditions": null,
"display": null,
"display_options": null,
"field": "theme",
"group": null,
"hidden": false,
"interface": "input",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 1,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "theme",
"table": "Themes",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "attestations",
"field": "color",
"type": "string",
"meta": {
"collection": "attestations",
"conditions": null,
"display": null,
"display_options": null,
"field": "color",
"group": null,
"hidden": false,
"interface": "select-color",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 5,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "color",
"table": "attestations",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "attestations",
"field": "date_created",
"type": "timestamp",
"meta": {
"collection": "attestations",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_created",
"group": null,
"hidden": false,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 3,
"special": [
"date-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_created",
"table": "attestations",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "attestations",
"field": "emoji",
"type": "string",
"meta": {
"collection": "attestations",
"conditions": null,
"display": null,
"display_options": null,
"field": "emoji",
"group": null,
"hidden": false,
"interface": "input",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 6,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "emoji",
"table": "attestations",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,45 @@
{
"collection": "attestations",
"field": "id",
"type": "uuid",
"meta": {
"collection": "attestations",
"conditions": null,
"display": null,
"display_options": null,
"field": "id",
"group": null,
"hidden": true,
"interface": "input",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 1,
"special": [
"uuid"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "id",
"table": "attestations",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,59 @@
{
"collection": "attestations",
"field": "shape",
"type": "string",
"meta": {
"collection": "attestations",
"conditions": null,
"display": null,
"display_options": null,
"field": "shape",
"group": null,
"hidden": false,
"interface": "select-dropdown",
"note": null,
"options": {
"allowOther": true,
"choices": [
{
"text": "circle",
"value": "circle"
},
{
"text": "squircle",
"value": "squircle"
},
{
"text": "hexago-2",
"value": "hexagon-2"
}
]
},
"readonly": false,
"required": false,
"sort": 7,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "shape",
"table": "attestations",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "attestations",
"field": "text",
"type": "text",
"meta": {
"collection": "attestations",
"conditions": null,
"display": null,
"display_options": null,
"field": "text",
"group": null,
"hidden": false,
"interface": "input",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 4,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "text",
"table": "attestations",
"data_type": "text",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,29 @@
{
"collection": "attestations",
"field": "to",
"type": "alias",
"meta": {
"collection": "attestations",
"conditions": null,
"display": null,
"display_options": null,
"field": "to",
"group": null,
"hidden": false,
"interface": "list-m2m",
"note": null,
"options": {
"enableCreate": false
},
"readonly": false,
"required": false,
"sort": 8,
"special": [
"m2m"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "attestations",
"field": "user_created",
"type": "uuid",
"meta": {
"collection": "attestations",
"conditions": null,
"display": "user",
"display_options": null,
"field": "user_created",
"group": null,
"hidden": false,
"interface": "select-dropdown-m2o",
"note": null,
"options": {
"template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
"sort": 2,
"special": [
"user-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "user_created",
"table": "attestations",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "attestations_directus_users",
"field": "attestations_id",
"type": "uuid",
"meta": {
"collection": "attestations_directus_users",
"conditions": null,
"display": null,
"display_options": null,
"field": "attestations_id",
"group": null,
"hidden": true,
"interface": null,
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 2,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "attestations_id",
"table": "attestations_directus_users",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "attestations",
"foreign_key_column": "id"
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "attestations_directus_users",
"field": "directus_users_id",
"type": "uuid",
"meta": {
"collection": "attestations_directus_users",
"conditions": null,
"display": null,
"display_options": null,
"field": "directus_users_id",
"group": null,
"hidden": true,
"interface": null,
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 3,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "directus_users_id",
"table": "attestations_directus_users",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "attestations_directus_users",
"field": "id",
"type": "integer",
"meta": {
"collection": "attestations_directus_users",
"conditions": null,
"display": null,
"display_options": null,
"field": "id",
"group": null,
"hidden": true,
"interface": null,
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 1,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "id",
"table": "attestations_directus_users",
"data_type": "integer",
"default_value": "nextval('attestations_directus_users_id_seq'::regclass)",
"max_length": null,
"numeric_precision": 32,
"numeric_scale": 0,
"is_nullable": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": true,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "contactInfos",
"field": "date_created",
"type": "timestamp",
"meta": {
"collection": "contactInfos",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_created",
"group": null,
"hidden": true,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 3,
"special": [
"date-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_created",
"table": "contactInfos",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "contactInfos",
"field": "date_updated",
"type": "timestamp",
"meta": {
"collection": "contactInfos",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_updated",
"group": null,
"hidden": true,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 5,
"special": [
"date-updated"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_updated",
"table": "contactInfos",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "contactInfos",
"field": "heading",
"type": "string",
"meta": {
"collection": "contactInfos",
"conditions": null,
"display": null,
"display_options": null,
"field": "heading",
"group": null,
"hidden": false,
"interface": "input",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 6,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "heading",
"table": "contactInfos",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,45 @@
{
"collection": "contactInfos",
"field": "id",
"type": "uuid",
"meta": {
"collection": "contactInfos",
"conditions": null,
"display": null,
"display_options": null,
"field": "id",
"group": null,
"hidden": true,
"interface": "input",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 1,
"special": [
"uuid"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "id",
"table": "contactInfos",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "contactInfos",
"field": "user_created",
"type": "uuid",
"meta": {
"collection": "contactInfos",
"conditions": null,
"display": "user",
"display_options": null,
"field": "user_created",
"group": null,
"hidden": true,
"interface": "select-dropdown-m2o",
"note": null,
"options": {
"template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
"sort": 2,
"special": [
"user-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "user_created",
"table": "contactInfos",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "contactInfos",
"field": "user_updated",
"type": "uuid",
"meta": {
"collection": "contactInfos",
"conditions": null,
"display": "user",
"display_options": null,
"field": "user_updated",
"group": null,
"hidden": true,
"interface": "select-dropdown-m2o",
"note": null,
"options": {
"template": "{{avatar.$thumbnail}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
"sort": 4,
"special": [
"user-updated"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "user_updated",
"table": "contactInfos",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "crowdfundings",
"field": "date_created",
"type": "timestamp",
"meta": {
"collection": "crowdfundings",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_created",
"group": null,
"hidden": true,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 3,
"special": [
"date-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_created",
"table": "crowdfundings",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "crowdfundings",
"field": "date_updated",
"type": "timestamp",
"meta": {
"collection": "crowdfundings",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_updated",
"group": null,
"hidden": true,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 5,
"special": [
"date-updated"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_updated",
"table": "crowdfundings",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,45 @@
{
"collection": "crowdfundings",
"field": "id",
"type": "uuid",
"meta": {
"collection": "crowdfundings",
"conditions": null,
"display": null,
"display_options": null,
"field": "id",
"group": null,
"hidden": true,
"interface": "input",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 1,
"special": [
"uuid"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "id",
"table": "crowdfundings",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "crowdfundings",
"field": "user_created",
"type": "uuid",
"meta": {
"collection": "crowdfundings",
"conditions": null,
"display": "user",
"display_options": null,
"field": "user_created",
"group": null,
"hidden": true,
"interface": "select-dropdown-m2o",
"note": null,
"options": {
"template": "{{avatar}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
"sort": 2,
"special": [
"user-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "user_created",
"table": "crowdfundings",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "crowdfundings",
"field": "user_updated",
"type": "uuid",
"meta": {
"collection": "crowdfundings",
"conditions": null,
"display": "user",
"display_options": null,
"field": "user_updated",
"group": null,
"hidden": true,
"interface": "select-dropdown-m2o",
"note": null,
"options": {
"template": "{{avatar}} {{first_name}} {{last_name}}"
},
"readonly": true,
"required": false,
"sort": 4,
"special": [
"user-updated"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "user_updated",
"table": "crowdfundings",
"data_type": "uuid",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": "directus_users",
"foreign_key_column": "id"
}
}

View File

@ -1,12 +1,12 @@
{
"collection": "directus_sync_id_map",
"field": "created_at",
"type": "dateTime",
"type": "timestamp",
"meta": null,
"schema": {
"name": "created_at",
"table": "directus_sync_id_map",
"data_type": "datetime",
"data_type": "timestamp with time zone",
"default_value": "CURRENT_TIMESTAMP",
"max_length": null,
"numeric_precision": null,

View File

@ -7,12 +7,12 @@
"name": "id",
"table": "directus_sync_id_map",
"data_type": "integer",
"default_value": null,
"default_value": "nextval('directus_sync_id_map_id_seq'::regclass)",
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"numeric_precision": 32,
"numeric_scale": 0,
"is_nullable": false,
"is_unique": false,
"is_unique": true,
"is_indexed": false,
"is_primary_key": true,
"is_generated": false,

View File

@ -6,7 +6,7 @@
"schema": {
"name": "local_id",
"table": "directus_sync_id_map",
"data_type": "varchar",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,

View File

@ -6,7 +6,7 @@
"schema": {
"name": "sync_id",
"table": "directus_sync_id_map",
"data_type": "varchar",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,

View File

@ -6,7 +6,7 @@
"schema": {
"name": "table",
"table": "directus_sync_id_map",
"data_type": "varchar",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,

View File

@ -0,0 +1,45 @@
{
"collection": "directus_users",
"field": "imported",
"type": "boolean",
"meta": {
"collection": "directus_users",
"conditions": null,
"display": null,
"display_options": null,
"field": "imported",
"group": null,
"hidden": false,
"interface": "boolean",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 7,
"special": [
"cast-boolean"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "imported",
"table": "directus_users",
"data_type": "boolean",
"default_value": false,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,27 @@
{
"collection": "directus_users",
"field": "notifications",
"type": "alias",
"meta": {
"collection": "directus_users",
"conditions": null,
"display": null,
"display_options": null,
"field": "notifications",
"group": null,
"hidden": false,
"interface": "list-m2m",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 9,
"special": [
"m2m"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
}
}

View File

@ -0,0 +1,45 @@
{
"collection": "directus_users",
"field": "wc_user",
"type": "boolean",
"meta": {
"collection": "directus_users",
"conditions": null,
"display": null,
"display_options": null,
"field": "wc_user",
"group": null,
"hidden": false,
"interface": "boolean",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 8,
"special": [
"cast-boolean"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "wc_user",
"table": "directus_users",
"data_type": "boolean",
"default_value": false,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "features",
"field": "date_created",
"type": "timestamp",
"meta": {
"collection": "features",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_created",
"group": null,
"hidden": true,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 5,
"special": [
"date-created"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_created",
"table": "features",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,47 @@
{
"collection": "features",
"field": "date_updated",
"type": "timestamp",
"meta": {
"collection": "features",
"conditions": null,
"display": "datetime",
"display_options": {
"relative": true
},
"field": "date_updated",
"group": null,
"hidden": true,
"interface": "datetime",
"note": null,
"options": null,
"readonly": true,
"required": false,
"sort": 7,
"special": [
"date-updated"
],
"translations": null,
"validation": null,
"validation_message": null,
"width": "half"
},
"schema": {
"name": "date_updated",
"table": "features",
"data_type": "timestamp with time zone",
"default_value": null,
"max_length": null,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

View File

@ -0,0 +1,43 @@
{
"collection": "features",
"field": "heading",
"type": "string",
"meta": {
"collection": "features",
"conditions": null,
"display": null,
"display_options": null,
"field": "heading",
"group": null,
"hidden": false,
"interface": "input",
"note": null,
"options": null,
"readonly": false,
"required": false,
"sort": 8,
"special": null,
"translations": null,
"validation": null,
"validation_message": null,
"width": "full"
},
"schema": {
"name": "heading",
"table": "features",
"data_type": "character varying",
"default_value": null,
"max_length": 255,
"numeric_precision": null,
"numeric_scale": null,
"is_nullable": true,
"is_unique": false,
"is_indexed": false,
"is_primary_key": false,
"is_generated": false,
"generation_expression": null,
"has_auto_increment": false,
"foreign_key_table": null,
"foreign_key_column": null
}
}

Some files were not shown because too many files have changed in this diff Show More