saleor-apps-redis_apl/apps/search
Lukasz Ostrowski 7240f6efa7 Add docker, prisma and worker POC
Add docker-compose with Postgres

Install Prisma and generate empty schema

Install Prisma client

Add app config model and migration

Add repository for Algolia Configuration

Migrate metadata to postgres

Replace webhooks metadata with PRisma

Add worker and skeleton code

Implement worker job and removed from the frontend

Attempt to display jobs list

Worker utils

Run worker in the same thread on dev

Run worker in the same thread on dev

Build scripts

fix dev mode

Dockerfiles

prod dockerfiles

docker wip

docker wip

wip working docker

wip working docker

wip - working without prisma migrate
2023-06-07 11:07:37 +02:00
..
docs Add search app (#108) 2023-02-08 09:28:14 +01:00
graphql Webhooks optimization (#434) 2023-04-29 11:30:48 +02:00
prisma Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
public Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
src Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
.dockerignore Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
.env.example Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
.eslintrc Add slack app (#120) 2023-02-09 11:58:20 +01:00
.gitignore Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
.graphqlrc.yml Add search app (#108) 2023-02-08 09:28:14 +01:00
app.prod.Dockerfile Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
CHANGELOG.md Release apps (#520) 2023-06-06 12:59:16 +02:00
next-env.d.ts Add search app (#108) 2023-02-08 09:28:14 +01:00
next.config.js Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
package.json Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
README.md Remove VercelAPL config and readmes (#203) 2023-02-23 12:42:17 +01:00
saleor-app.ts Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
sentry.client.config.js Apply recent ESLint rules on the codebase (#404) 2023-04-18 15:10:00 +02:00
sentry.edge.config.js Apply recent ESLint rules on the codebase (#404) 2023-04-18 15:10:00 +02:00
sentry.server.config.js Apply recent ESLint rules on the codebase (#404) 2023-04-18 15:10:00 +02:00
tsconfig.json Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
turbo.json Add docker, prisma and worker POC 2023-06-07 11:07:37 +02:00
vitest.config.ts Search redesign to Macaw 2.0 (#420) 2023-04-25 18:20:20 +02:00

Saleor App Search

Saleor App Search

About

Saleor App providing integration with the Algolia (and more search engines in the future).

What's included?

  • Synchronize changes of your products catalog with Algolia
  • Search results preview
  • Each channel is a separate index

How to install

  • start local dev server or deploy the application
  • install the application in your Saleor Instance using manifest URL
  • configure the application

Learn more about Apps

Apps guide

Configuring apps in dashboard

Development

Requirements

Before you start, make sure you have installed:

  1. Install the dependencies by running:
pnpm install
  1. Start the local server with:
pnpm dev
  1. Expose local environment using tunnel:
  • Use Saleor CLI saleor app tunnel
  • Use tunneling tools like localtunnel or ngrok.
  1. Install application at your dashboard:

If you use Saleor Cloud or your local server is exposed, you can install your app by following this link:

[YOUR_SALEOR_DASHBOARD_URL]/apps/install?manifestUrl=[YOUR_APP_TUNNEL_MANIFEST_URL]

This template host manifest at /api/manifest

You can also install application using GQL or command line. Follow the guide how to install your app to learn more.

Generated schema and typings

Commands build and dev would generate schema and typed functions using Saleor's GraphQL endpoint. Commit the generated folder to your repo as they are necessary for queries and keeping track of the schema changes.

Learn more about GraphQL code generation.

Storing registration data - APL

During registration process Saleor API pass the auth token to the app. With this token App can query Saleor API with privileged access (depending on requested permissions during the installation). To store this data, app-template use a different APL interfaces.

The choice of the APL is done using APL environment variable. If value is not set, FileAPL is used. Available choices:

  • file: no additional setup is required. Good choice for local development. Can't be used for multi tenant-apps or be deployed (not intended for production)
  • upstash: use Upstash Redis as storage method. Free account required. Can be used for development and production and supports multi-tenancy. Requires UPSTASH_URL and UPSTASH_TOKEN environment variables to be set

If you want to use your own database, you can implement your own APL. Check the documentation to read more.