From 2dbb2579aa5cb728d4b73c97f48144ad7ef8a331 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 24 May 2024 13:37:12 +0200 Subject: [PATCH] Add DB integration templates --- package-lock.json | 18 +-- package.json | 4 +- src/lib/stores/marketplace.ts | 238 ++++++++++++++++++++++++++++++++++ 3 files changed, 249 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 279f65287..2aeab8842 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,8 @@ "name": "@appwrite/console", "dependencies": { "@appwrite.io/console": "^0.6.2", - "@appwrite.io/pink": "0.20.0", - "@appwrite.io/pink-icons": "0.20.0", + "@appwrite.io/pink": "0.22.0", + "@appwrite.io/pink-icons": "0.22.0", "@popperjs/core": "^2.11.8", "@sentry/svelte": "^7.66.0", "@sentry/tracing": "^7.66.0", @@ -162,19 +162,19 @@ "integrity": "sha512-3qYknuFwhvTN2GnPB8G1w5DgxfVorGtfj4uuEaXbTmMUmjA8fHaW5VkJriuUxCi6/TpxDxqV/hhEkdoXL+5H4w==" }, "node_modules/@appwrite.io/pink": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@appwrite.io/pink/-/pink-0.20.0.tgz", - "integrity": "sha512-17anov7EL+Ic/4fNtCYgG3wA+hoeBXn/j+ZjkfZFfX3g66M8XzVTaQfsAH+EMZ3YjvWuKlHtn+bY4BkGwvMIzQ==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@appwrite.io/pink/-/pink-0.22.0.tgz", + "integrity": "sha512-u11DTxI1n4Q07/jA6yW13k6dPNIlxg4nKv/fgMuIuB1d1NEa5TPzJCWInn9GsS++7DhEem/4Ah4HyZU0KEQb/w==", "dependencies": { - "@appwrite.io/pink-icons": "0.20.0", + "@appwrite.io/pink-icons": "0.22.0", "normalize.css": "^8.0.1", "the-new-css-reset": "^1.11.2" } }, "node_modules/@appwrite.io/pink-icons": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@appwrite.io/pink-icons/-/pink-icons-0.20.0.tgz", - "integrity": "sha512-nfDy7qE6FQWVO1eC+3nwGjXkj/Zm2V50rhvyj0/HKq8RyWNWFGX31BZoMSim01vl/N5irBilpkaER6mLPp7oEw==" + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@appwrite.io/pink-icons/-/pink-icons-0.22.0.tgz", + "integrity": "sha512-TgfEVTOeYB+6HdW3e8OSfikBCMEgpNDTE/3RU61howFnlmUhooePFOiQXQKqcYinN+KNQWbWrt0Ob1uVDho4hg==" }, "node_modules/@babel/code-frame": { "version": "7.24.2", diff --git a/package.json b/package.json index f258ae4db..e4beaa91a 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ }, "dependencies": { "@appwrite.io/console": "^0.6.2", - "@appwrite.io/pink": "0.20.0", - "@appwrite.io/pink-icons": "0.20.0", + "@appwrite.io/pink": "0.22.0", + "@appwrite.io/pink-icons": "0.22.0", "@popperjs/core": "^2.11.8", "@sentry/svelte": "^7.66.0", "@sentry/tracing": "^7.66.0", diff --git a/src/lib/stores/marketplace.ts b/src/lib/stores/marketplace.ts index 86625c238..c22e9f84c 100644 --- a/src/lib/stores/marketplace.ts +++ b/src/lib/stores/marketplace.ts @@ -77,6 +77,244 @@ export const marketplace: MarketplaceTemplate[] = [ } ] }, + { + icon: 'icon-upstash', + id: 'query-upstash-vector', + name: 'Query Upstash Vector', + tagline: 'Vector database to store embeddings powering tailored LLM answers.', + permissions: ['any'], + events: [], + cron: '', + timeout: 15, + usecases: ['Databases'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/query-upstash-vector' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'UPSTASH_URL', + description: `The endpoint to connect to your Upstash Vector database. Learn more.`, + value: '', + placeholder: 'https://resolved-mallard-84564-eu1-vector.upstash.io', + required: true, + type: 'text' + }, + { + name: 'UPSTASH_TOKEN', + description: `Authentication token to access your Upstash Vector database. Learn more.`, + value: '', + placeholder: + 'oe4wNTbwHVLcDNa6oceZfhBEABsCNYh43ii6Xdq4bKBH7mq7qJkUmc4cs3ABbYyuVKWZTxVQjiNjYgydn2dkhABNes4NAuDpj7qxUAmZYqGJT78', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-redis', + id: 'query-redis-labs', + name: 'Query Redis Labs', + tagline: 'Key-value database with advanced caching capabilities.', + permissions: ['any'], + events: [], + cron: '', + timeout: 15, + usecases: ['Databases'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/query-redis-labs' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'REDIS_HOST', + description: `The endpoint to connect to your Redis database. Learn more.`, + value: '', + placeholder: 'redis-13258.c35.eu-central-1-1.ec2.redns.redis-cloud.com', + required: true, + type: 'text' + }, + { + name: 'REDIS_PASSWORD', + description: `Authentication password to access your Redis database. Learn more.`, + value: '', + placeholder: 'efNNehiACfcZiwsTAjcK6xiwPyu6Dpdq', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-neo4j', + id: 'query-neo4j-auradb', + name: 'Query Neo4j AuraDB', + tagline: 'Graph database with focus on relations between data.', + permissions: ['any'], + events: [], + cron: '', + timeout: 15, + usecases: ['Databases'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/query-neo4j-auradb' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'NEO4J_URI', + description: `The endpoint to connect to your Neo4j database. Learn more.`, + value: '', + placeholder: 'neo4j+s://4tg4mddo.databases.neo4j.io', + required: true, + type: 'text' + }, + { + name: 'NEO4J_USER', + description: `Authentication user to access your Neo4j database. Learn more.`, + value: '', + placeholder: 'neo4j', + required: true, + type: 'text' + }, + { + name: 'NEO4J_PASSWORD', + description: `Authentication password to access your Neo4j database. Learn more.`, + value: '', + placeholder: 'mCUc4PbVUQN-_NkTLJLisb6ccnwzQKKhrkF77YMctzx', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-mongodb', + id: 'query-mongo-atlas', + name: 'Query MongoDB Atlas', + tagline: + 'Realtime NoSQL document database with geospecial, graph, search, and vector suport.', + permissions: ['any'], + events: [], + cron: '', + timeout: 15, + usecases: ['Databases'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/query-mongo-atlas' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'MONGO_URI', + description: `The endpoint to connect to your Mongo database. Learn more.`, + value: '', + placeholder: + 'mongodb+srv://appwrite:Yx42hafg7Q4fgkxe@cluster0.7mslfog.mongodb.net/?retryWrites=true&w=majority&appName=Appwrite', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-neon', + id: 'query-neon-postgres', + name: 'Query Neon Postgres', + tagline: + 'Reliable SQL database with replication, point-in-time recovery, and pgvector support.', + permissions: ['any'], + events: [], + cron: '', + timeout: 15, + usecases: ['Databases'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/query-neon-postgres' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'PGHOST', + description: `The endpoint to connect to your Postgres database. Learn more.`, + value: '', + placeholder: 'ep-still-sea-a792sh84.eu-central-1.aws.neon.tech', + required: true, + type: 'text' + }, + { + name: 'PGDATABASE', + description: `Name of our Postgres database. Learn more.`, + value: '', + placeholder: 'main', + required: true, + type: 'text' + }, + { + name: 'PGUSER', + description: `Name of our Postgres user for authentication. Learn more.`, + value: '', + placeholder: 'main_owner', + required: true, + type: 'text' + }, + { + name: 'PGPASSWORD', + description: `Password of our Postgres user for authentication. Learn more.`, + value: '', + placeholder: 'iQCfaUaaWB3B', + required: true, + type: 'password' + }, + { + name: 'ENDPOINT_ID', + description: `Endpoint ID provided for your Postgres database. Learn more.`, + value: '', + placeholder: 'ep-still-sea-a792sh84', + required: true, + type: 'text' + } + ] + }, { icon: 'icon-open-ai', id: 'prompt-chatgpt',