فهرست منبع

chore: Remove all other Bitnami image references

David Höck 4 ماه پیش
والد
کامیت
706d79a7d8

+ 13 - 13
docker-compose.yml

@@ -4,38 +4,39 @@
 name: vendure-monorepo
 name: vendure-monorepo
 services:
 services:
     mariadb:
     mariadb:
-        image: 'bitnami/mariadb:latest'
+        image: 'mariadb:latest'
         container_name: mariadb
         container_name: mariadb
         environment:
         environment:
             MARIADB_DATABASE: vendure-dev
             MARIADB_DATABASE: vendure-dev
-            MARIADB_ROOT_USER: vendure
+            MARIADB_USER: vendure
+            MARIADB_PASSWORD: password
             MARIADB_ROOT_PASSWORD: password
             MARIADB_ROOT_PASSWORD: password
         volumes:
         volumes:
-            - 'mariadb_data:/bitnami'
+            - 'mariadb_data:/var/lib/mysql'
         ports:
         ports:
             - '3306:3306'
             - '3306:3306'
     mysql_8:
     mysql_8:
-        image: bitnami/mysql:8.0
+        image: mysql:8.0
         container_name: mysql-8
         container_name: mysql-8
         environment:
         environment:
-            MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
             MYSQL_DATABASE: vendure-dev
             MYSQL_DATABASE: vendure-dev
-            MYSQL_ROOT_USER: vendure
+            MYSQL_USER: vendure
+            MYSQL_PASSWORD: password
             MYSQL_ROOT_PASSWORD: password
             MYSQL_ROOT_PASSWORD: password
         volumes:
         volumes:
-            - 'mysql_data:/bitnami'
+            - 'mysql_data:/var/lib/mysql'
         ports:
         ports:
             - '3306:3306'
             - '3306:3306'
     mysql_5:
     mysql_5:
-        image: bitnami/mysql:5.7
+        image: mysql:5.7
         container_name: mysql-5.7
         container_name: mysql-5.7
         environment:
         environment:
-            MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
             MYSQL_DATABASE: vendure-dev
             MYSQL_DATABASE: vendure-dev
-            MYSQL_ROOT_USER: vendure
+            MYSQL_USER: vendure
+            MYSQL_PASSWORD: password
             MYSQL_ROOT_PASSWORD: password
             MYSQL_ROOT_PASSWORD: password
         volumes:
         volumes:
-            - 'mysql_data:/bitnami'
+            - 'mysql_data:/var/lib/mysql'
         ports:
         ports:
             - '3306:3306'
             - '3306:3306'
     postgres_12:
     postgres_12:
@@ -96,8 +97,7 @@ services:
     redis:
     redis:
         image: redis:7.2-alpine
         image: redis:7.2-alpine
         hostname: redis
         hostname: redis
-        environment:
-            - ALLOW_EMPTY_PASSWORD=yes
+        environment: []
         ports:
         ports:
             - '6379:6379'
             - '6379:6379'
 
 

+ 2 - 4
docs/docs/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-plugin.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## BullMQJobQueuePlugin
 ## BullMQJobQueuePlugin
 
 
-<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/plugin.ts" sourceLine="192" packageName="@vendure/job-queue-plugin" />
+<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/plugin.ts" sourceLine="190" packageName="@vendure/job-queue-plugin" />
 
 
 This plugin is a drop-in replacement of the DefaultJobQueuePlugin, which implements a push-based
 This plugin is a drop-in replacement of the DefaultJobQueuePlugin, which implements a push-based
 job queue strategy built on top of the popular [BullMQ](https://github.com/taskforcesh/bullmq) library.
 job queue strategy built on top of the popular [BullMQ](https://github.com/taskforcesh/bullmq) library.
@@ -68,11 +68,9 @@ which is a web-based UI for interacting with Redis:
 version: "3"
 version: "3"
 services:
 services:
   redis:
   redis:
-    image: bitnami/redis:6.2
+    image: redis:7.4
     hostname: redis
     hostname: redis
     container_name: redis
     container_name: redis
-    environment:
-      - ALLOW_EMPTY_PASSWORD=yes
     ports:
     ports:
       - "6379:6379"
       - "6379:6379"
   redis-commander:
   redis-commander:

+ 1 - 1
docs/docs/reference/dashboard/form-components/rich-text-input.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## RichTextInput
 ## RichTextInput
 
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-input/rich-text-input.tsx" sourceLine="32" packageName="@vendure/dashboard" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-input/rich-text-input.tsx" sourceLine="12" packageName="@vendure/dashboard" />
 
 
 A component for displaying a rich text editor. Internally uses ProseMirror (rich text editor) under the hood.
 A component for displaying a rich text editor. Internally uses ProseMirror (rich text editor) under the hood.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/scheduled-tasks/default-scheduler-plugin.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DefaultSchedulerPlugin
 ## DefaultSchedulerPlugin
 
 
-<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/default-scheduler.plugin.ts" sourceLine="39" packageName="@vendure/core" since="3.3.0" />
+<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/default-scheduler.plugin.ts" sourceLine="40" packageName="@vendure/core" since="3.3.0" />
 
 
 This plugin configures a default scheduling strategy that executes scheduled
 This plugin configures a default scheduling strategy that executes scheduled
 tasks using the database to ensure that each task is executed exactly once
 tasks using the database to ensure that each task is executed exactly once

+ 1 - 1
docs/docs/reference/typescript-api/scheduled-tasks/default-scheduler-strategy.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DefaultSchedulerStrategy
 ## DefaultSchedulerStrategy
 
 
-<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts" sourceLine="27" packageName="@vendure/core" since="3.3.0" />
+<GenerationInfo sourceFile="packages/core/src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts" sourceLine="28" packageName="@vendure/core" since="3.3.0" />
 
 
 The default <a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#schedulerstrategy'>SchedulerStrategy</a> implementation that uses the database to
 The default <a href='/reference/typescript-api/scheduled-tasks/scheduler-strategy#schedulerstrategy'>SchedulerStrategy</a> implementation that uses the database to
 execute scheduled tasks. This strategy is configured when you use the
 execute scheduled tasks. This strategy is configured when you use the

+ 67 - 4
docs/docs/reference/typescript-api/services/settings-store-service.md

@@ -40,14 +40,24 @@ class SettingsStoreService implements OnModuleInit {
     constructor(connection: TransactionalConnection, moduleRef: ModuleRef, configService: ConfigService)
     constructor(connection: TransactionalConnection, moduleRef: ModuleRef, configService: ConfigService)
     onModuleInit() => ;
     onModuleInit() => ;
     register(registration: SettingsStoreRegistration) => void;
     register(registration: SettingsStoreRegistration) => void;
+    get(ctx: RequestContext, key: string) => Promise<T | undefined>;
     get(key: string, ctx: RequestContext) => Promise<T | undefined>;
     get(key: string, ctx: RequestContext) => Promise<T | undefined>;
+    get(keyOrCtx: string | RequestContext, ctxOrKey: RequestContext | string) => Promise<T | undefined>;
+    getMany(ctx: RequestContext, keys: string[]) => Promise<Record<string, JsonCompatible<any>>>;
     getMany(keys: string[], ctx: RequestContext) => Promise<Record<string, JsonCompatible<any>>>;
     getMany(keys: string[], ctx: RequestContext) => Promise<Record<string, JsonCompatible<any>>>;
+    getMany(keysOrCtx: string[] | RequestContext, ctxOrKeys: RequestContext | string[]) => Promise<Record<string, JsonCompatible<any>>>;
+    set(ctx: RequestContext, key: string, value: T) => Promise<SetSettingsStoreValueResult>;
     set(key: string, value: T, ctx: RequestContext) => Promise<SetSettingsStoreValueResult>;
     set(key: string, value: T, ctx: RequestContext) => Promise<SetSettingsStoreValueResult>;
+    set(keyOrCtx: string | RequestContext, keyOrValue: string | T, ctxOrValue: RequestContext | T) => Promise<SetSettingsStoreValueResult>;
+    setMany(ctx: RequestContext, values: Record<string, JsonCompatible<any>>) => Promise<SetSettingsStoreValueResult[]>;
     setMany(values: Record<string, JsonCompatible<any>>, ctx: RequestContext) => Promise<SetSettingsStoreValueResult[]>;
     setMany(values: Record<string, JsonCompatible<any>>, ctx: RequestContext) => Promise<SetSettingsStoreValueResult[]>;
+    setMany(valuesOrCtx: Record<string, JsonCompatible<any>> | RequestContext, ctxOrValues: RequestContext | Record<string, JsonCompatible<any>>) => Promise<SetSettingsStoreValueResult[]>;
     getFieldDefinition(key: string) => SettingsStoreFieldConfig | undefined;
     getFieldDefinition(key: string) => SettingsStoreFieldConfig | undefined;
     validateValue(key: string, value: any, ctx: RequestContext) => Promise<string | void>;
     validateValue(key: string, value: any, ctx: RequestContext) => Promise<string | void>;
     findOrphanedEntries(options: CleanupOrphanedSettingsStoreEntriesOptions = {}) => Promise<OrphanedSettingsStoreEntry[]>;
     findOrphanedEntries(options: CleanupOrphanedSettingsStoreEntriesOptions = {}) => Promise<OrphanedSettingsStoreEntry[]>;
     cleanupOrphanedEntries(options: CleanupOrphanedSettingsStoreEntriesOptions = {}) => Promise<CleanupOrphanedSettingsStoreEntriesResult>;
     cleanupOrphanedEntries(options: CleanupOrphanedSettingsStoreEntriesOptions = {}) => Promise<CleanupOrphanedSettingsStoreEntriesResult>;
+    hasPermission(ctx: RequestContext, key: string) => boolean;
+    isReadonly(key: string) => boolean;
 }
 }
 ```
 ```
 * Implements: <code>OnModuleInit</code>
 * Implements: <code>OnModuleInit</code>
@@ -74,30 +84,70 @@ Register settings store fields. This is typically called during application
 bootstrap when processing the VendureConfig.
 bootstrap when processing the VendureConfig.
 ### get
 ### get
 
 
-<MemberInfo kind="method" type={`(key: string, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;T | undefined&#62;`}   />
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, key: string) => Promise&#60;T | undefined&#62;`}   />
 
 
 Get a value for the specified key. The value is automatically scoped
 Get a value for the specified key. The value is automatically scoped
 according to the field's scope configuration.
 according to the field's scope configuration.
+### get
+
+<MemberInfo kind="method" type={`(key: string, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;T | undefined&#62;`}   />
+
+
+### get
+
+<MemberInfo kind="method" type={`(keyOrCtx: string | <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, ctxOrKey: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a> | string) => Promise&#60;T | undefined&#62;`}   />
+
+
 ### getMany
 ### getMany
 
 
-<MemberInfo kind="method" type={`(keys: string[], ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;&#62;`}   />
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, keys: string[]) => Promise&#60;Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;&#62;`}   />
 
 
 Get multiple values efficiently. Each key is scoped according to
 Get multiple values efficiently. Each key is scoped according to
 its individual field configuration.
 its individual field configuration.
+### getMany
+
+<MemberInfo kind="method" type={`(keys: string[], ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;&#62;`}   />
+
+
+### getMany
+
+<MemberInfo kind="method" type={`(keysOrCtx: string[] | <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, ctxOrKeys: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a> | string[]) => Promise&#60;Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;&#62;`}   />
+
+
 ### set
 ### set
 
 
-<MemberInfo kind="method" type={`(key: string, value: T, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>&#62;`}   />
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, key: string, value: T) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>&#62;`}   />
 
 
 Set a value for the specified key with structured result feedback.
 Set a value for the specified key with structured result feedback.
 This version returns detailed information about the success or failure
 This version returns detailed information about the success or failure
 of the operation instead of throwing errors.
 of the operation instead of throwing errors.
+### set
+
+<MemberInfo kind="method" type={`(key: string, value: T, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>&#62;`}   />
+
+
+### set
+
+<MemberInfo kind="method" type={`(keyOrCtx: string | <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, keyOrValue: string | T, ctxOrValue: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a> | T) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>&#62;`}   />
+
+
 ### setMany
 ### setMany
 
 
-<MemberInfo kind="method" type={`(values: Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>[]&#62;`}   />
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, values: Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>[]&#62;`}   />
 
 
 Set multiple values with structured result feedback for each operation.
 Set multiple values with structured result feedback for each operation.
 This method will not throw errors but will return
 This method will not throw errors but will return
 detailed results for each key-value pair.
 detailed results for each key-value pair.
+### setMany
+
+<MemberInfo kind="method" type={`(values: Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>[]&#62;`}   />
+
+
+### setMany
+
+<MemberInfo kind="method" type={`(valuesOrCtx: Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62; | <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, ctxOrValues: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a> | Record&#60;string, <a href='/reference/typescript-api/common/json-compatible#jsoncompatible'>JsonCompatible</a>&#60;any&#62;&#62;) => Promise&#60;<a href='/reference/typescript-api/settings-store/set-settings-store-value-result#setsettingsstorevalueresult'>SetSettingsStoreValueResult</a>[]&#62;`}   />
+
+
 ### getFieldDefinition
 ### getFieldDefinition
 
 
 <MemberInfo kind="method" type={`(key: string) => <a href='/reference/typescript-api/settings-store/settings-store-field-config#settingsstorefieldconfig'>SettingsStoreFieldConfig</a> | undefined`}   />
 <MemberInfo kind="method" type={`(key: string) => <a href='/reference/typescript-api/settings-store/settings-store-field-config#settingsstorefieldconfig'>SettingsStoreFieldConfig</a> | undefined`}   />
@@ -118,6 +168,19 @@ Find orphaned settings store entries that no longer have corresponding field def
 <MemberInfo kind="method" type={`(options: <a href='/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-options#cleanuporphanedsettingsstoreentriesoptions'>CleanupOrphanedSettingsStoreEntriesOptions</a> = {}) => Promise&#60;<a href='/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-result#cleanuporphanedsettingsstoreentriesresult'>CleanupOrphanedSettingsStoreEntriesResult</a>&#62;`}   />
 <MemberInfo kind="method" type={`(options: <a href='/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-options#cleanuporphanedsettingsstoreentriesoptions'>CleanupOrphanedSettingsStoreEntriesOptions</a> = {}) => Promise&#60;<a href='/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-result#cleanuporphanedsettingsstoreentriesresult'>CleanupOrphanedSettingsStoreEntriesResult</a>&#62;`}   />
 
 
 Clean up orphaned settings store entries from the database.
 Clean up orphaned settings store entries from the database.
+### hasPermission
+
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, key: string) => boolean`}   />
+
+Check if the current user has permission to access a field.
+This is not called internally in the get and set methods, so should
+be used by any methods which are exposing these methods via the GraphQL
+APIs.
+### isReadonly
+
+<MemberInfo kind="method" type={`(key: string) => boolean`}   />
+
+Returns true if the settings field has the `readonly: true` configuration.
 
 
 
 
 </div>
 </div>

+ 1 - 3
packages/job-queue-plugin/src/bullmq/plugin.ts

@@ -65,11 +65,9 @@ import { BullMQPluginOptions } from './types';
  * version: "3"
  * version: "3"
  * services:
  * services:
  *   redis:
  *   redis:
- *     image: bitnami/redis:6.2
+ *     image: redis:7.4
  *     hostname: redis
  *     hostname: redis
  *     container_name: redis
  *     container_name: redis
- *     environment:
- *       - ALLOW_EMPTY_PASSWORD=yes
  *     ports:
  *     ports:
  *       - "6379:6379"
  *       - "6379:6379"
  *   redis-commander:
  *   redis-commander: