Conduit

Batteries-included backend that works with any stack.

MIT License

Downloads
1.7K
Stars
454
Committers
29

Bot releases are visible (Hide)

Conduit - v0.11.0

Published by kkopanidis over 2 years ago

0.11.0 (2022-02-17)

⚠ BREAKING CHANGES

  • cms: Removed CMS.getSchemasFromOtherModules (GET: /admin/cms/schemasFromOtherModules)

  • feat(cms): remove getSchemas hackery for system schemas

  • cms: CMS.CreateDocuments URI is now
    [POST]: /admin/cms/schemas/:schemaName/docs/many

  • Dynamically generated form submission URIs now use the form's '_id' field.

  • Affected routes now return 'count'
    CMS.GetDocuments (GET: /admin/cms/query/:schemaName)
    CMS.GetSchemas (GET: /admin/cms/schemas)
    CMS.getDocuments (GET: /admin/cms/${schemaName})
    Chat.GetRooms (GET: /admin/chat/rooms)
    Database.GetDeclaredSchemasExtensions (GET: /admin/database/schemas/extensions)
    Email.GetTemplates (GET: /admin/email/templates)
    Email.GetExternalTemplates (GET: /admin/email/externalTemplates)
    Email.SyncExternalTemplates (PUT: /admin/email/syncExternalTemplates)
    Forms.DeleteForms (DELETE: /admin/forms/delete)
    Payments.GetProducts (GET: /admin/payments/products)
    Payments.GetCustomers (GET: /admin/payments/customer)
    Payments.GetTransactions (GET: /admin/payments/transactions)
    Payments.GetSubscriptions (GET: /admin/payments/subscriptions)
    [GET] /admin/cms/schemasFromOtherModules now returns 'externalSchemas'
    Authentication.RenewServiceToken now accepts serviceId as a url param
    Authentication.RenewServiceToken PUT: /admin/authentication/services -> /admin/authentication/services/:id/token
    Authentication.ToggleUsers: POST: /admin/authentication/users/toggle -> /admin/authentication/users/many/toggle
    Authentication.DeleteUsers: DELETE: /admin/authentication/users -> /admin/authentication/users/many
    Chat.DeleteRooms: DELETE: /admin/chat/rooms -> /admin/chat/rooms/many
    Chat.DeleteMessages: DELETE: /admin/chat/messages -> /admin/chat/messages/many
    CMS.DeleteSchemas: DELETE: /admin/cms/schemas -> /admin/cms/schemas/many
    CMS.ToggleSchema: PUT: /admin/cms/schemas/toggle/:id -> /admin/cms/schemas/:id/toggle
    CMS.ToggleSchemas: PUT: /admin/cms/schemas/toggle -> /admin/cms/schemas/many/toggle
    CMS.SetSchemaPermissions: PATCH: /admin/cms/schemas/permissions/:id -> /admin/cms/schemas/:id/permissions
    CMS.GetDocument: GET: /admin/cms/content/:schemaName/:id -> /admin/cms/schemas/:schemaName/docs/:id
    CMS.GetDocuments: GET: /admin/cms/query/:schemaName -> /admin/cms/schemas/:schemaName/docs
    CMS.CreateDocument: POST: /admin/cms/content/:schemaName -> /admin/cms/schemas/:schemaName/docs
    CMS.CreateDocuments: POST: /admin/cms/content/:schemaName/many -> /admin/cms/schemas/:schemaName/docs/many
    CMS.UpdateDocument: POST: /admin/cms/schemas/:schemaName/:id -> /admin/cms/schemas/:schemaName/docs/:id
    CMS.UpdateDocuments: POST: /admin/cms/schemas/:schemaName/many -> /admin/cms/schemas/:schemaName/docs/many
    CMS.DeleteDocument: DELETE: /admin/cms/schemas/:schemaName/:id -> /admin/cms/schemas/:schemaName/docs/:id
    Email.DeleteTemplates: DELETE: /admin/email/templates -> /admin/email/templates/many
    Forms.GetForms: GET /admin/forms/get -> /admin/forms/forms
    Forms.CreateForm: POST /admin/forms/new -> /admin/forms/forms
    Forms.UpdateForm: POST /admin/forms/update/:formId -> /admin/forms/forms/:formId
    Forms.DeleteForms: DELETE /admin/forms/delete -> /admin/forms/forms
    Forms.GetFormReplies: GET /admin/forms/replies/:formId -> /admin/forms/forms/:formId/replies
    Payments.GetCustomers: GET /admin/payments/customer -> /admin/payments/customers
    Payments.CreateCustomer: POST /admin/payments/customer -> /admin/payments/customers
    Storage.GetFile: GET /admin/file/:id -> /admin/files/:id
    Storage.GetFiles: GET /admin/file -> /admin/files
    Storage.CreateFiles: POST /admin/file -> /admin/files
    Storage.PatchFile: PATCH /admin/file/:id -> /admin/files/:id
    Storage.DeleteFile: DELETE /admin/file/:id -> /admin/files/:id
    Storage.GetFileUrl: GET /admin/getFileUrl/:id -> /admin/files/:id/url
    Storage.GetFileData: GET /admin/files/:id/data -> /admin/files/:id/data
    Storage.GetFolders: GET /admin/storage/folder -> /admin/storage/folders
    Storage.CreateFolder: POST /admin/storage/folder -> /admin/storage/folders
    Storage.DeleteFolder: DELETE /admin/storage/folder/:id -> /admin/storage/folders/:id
    Storage.GetContainers: GET /admin/storage/container -> /admin/storage/containers
    Storage.CreateContainer: POST /admin/storage/container -> /admin/storage/containers
    Storage.DeleteContainer: DELETE /admin/storage/container/:id -> /admin/storage/containers/:id
    CMS.ToggleSchema: /admin/cms/schemas/:id/toggle [PUT -> POST]
    CMS.ToggleSchemas: /admin/cms/schemas/many/toggle [PUT -> POST]
    Authentication.RenewServiceToken: /admin/authentication/services/:serviceId/token [PUT -> GET]
    Authentication.DeleteUsers: [DELETE] /admin/authentication/users/many -> /admin/authentication/users
    Authentication.ToggleUsers: [POST] /admin/authentication/users/many/toggle -> /admin/authentication/users/toggle
    Chat.DeleteRooms: [DELETE] /admin/chat/rooms/many -> /admin/chat/rooms
    Chat.DeleteMessages: [DELETE] /admin/chat/messages/many -> /admin/chat/messages
    CMS.DeleteSchemas: [DELETE] /admin/cms/schemas/many ->/admin/cms/schemas
    CMS.ToggleSchemas: [POST] /admin/cms/schemas/many/toggle -> /admin/cms/schemas/toggle
    CMS.GetDocuments: * [POST] * /admin/cms/schemas/:schemaName/docs/many -> /admin/cms/schemas/:schemaName/query
    CMS.UpdateDocuments [PUT]: /admin/cms/schemas/:schemaName/docs/many -> /admin/cms/schemas/:schemaName/docs
    Email.DeleteTemplates [DELETE]: /admin/email/templates/many -> /admin/email/templates
    Forms.DeleteForms [DELETE]: /admin/forms/forms/many -> /admin/forms/forms

  • Affected routes' 'ids' field moved to queryParams

  • Authentication.DeleteUsers
  • Chat.DeleteRooms
  • Chat.DeleteMessages
  • CMS.DeleteSchemas
  • Email.DeleteTemplates
  • Forms.DeleteForms
  • Authentication.DeleteService: id is now a urlParam
    Forms.GetReplies [GET]: /admin/forms/forms/:formId/replies -> /admin/forms/replies
    Forms.GetReplies [GET]: /admin/forms/replies now acceps formId as a query parameter
  • cms,sms,push-notifications,authentication: Affected route return types differ
  • cms: getSchemas now directly returns 'schemas' and 'documentsCount'
  • modules,grpc-sdk: renamed SERVICE_URL module env variable to SERVICE_IP
  • storage: using id to delete folder,container instead of using name and container
  • storage: return types of admin and non-admin routes getFile, createFile, editFile changed
  • database: renamed database-provider to 'database'
  • security: CreateSecurityClient return field nesting
  • config: GetConfig and UpdateConfig return field nesting

Features

  • actor,authentication,chat,cms,forms,payments: use nullish coalescing for optional params (50d2666)
  • actor: return type referencing of GetFlow in GetFlows (e2d18e8)
  • admin,security: exclude Admin Swagger route from admin, auth middlewares while in dev mode (d3f63cd)
  • authentication: user provider metadata stored in database (#39) (3863224)
  • cms,database,commons,grpc-sdk: phase out SchemaDefinitions (a48fcef)
  • cms,grpc-sdk,commons: add permission params to createSchema, editSchema (58d8d37)
  • cms: GetCustomEndpoints pagination and count (886b7d9)
  • cms: implement setSchemaPermission admin route (bee726e)
  • cms: migrate SchemaDefinitions -> _DeclaredSchema (2fd0d07)
  • cms: remove cms-only filtering from getSchema, getSchemas (#21) (40a9d88)
  • commons,router: add routerName string arg to grpcToConduitRoute() (decb592)
  • database,cms,grpc-sdk: schema extensions (#35) (d8ff954)
  • database: add permission checks for creation, modification, deletion, extension (7c15ee4)
  • database: Database admin route, GetDeclaredSchemas() (bce969c)
  • database: migrate _DeclaredSchema.modelOptions (3e74bf6)
  • examples: update custom module example implementation #20101w7 (#521) (eb9029a), closes #20101w7
  • grpc-sdk,commons,admin,config,database,cms: remove ConduitModelOptions.systemRequired (8228712)
  • grpc-sdk,commons,security,modules: schema permissions (c307991)
  • grpc-sdk: provide module name in grpc requests (6c4116c)
  • modules,grpc-sdk: module SERVICE_IP env variable (eg: '0.0.0.0:5000') (fe0c3d0)
  • readme: fix md formatting, add tables and code blocks, improve run commands (#1) (2982079)
  • router: add support for required bodyParams to SwaggerParser (85b6411)
  • router: implement SwaggerParser (bfc18c2)
  • security,modules: specify sane initial schema permissions (7f93019)
  • storage: delete , create folder and container at local storage (02707af)
  • storage: return type referencing of GetFile in GetFiles (e0ce43c)

Bug Fixes

  • actor,chat,cms,payments,storage: remove return field encapsulation (25d1b7a)

  • admin,config,security,actor,authentication,chat,cms,database,email,forms,payments,push-notifications,storage: add missing {required: true} to required schema fields (bfbd17c)

  • admin,config,security: unnest ConduitRouteReturnDefinition return fields from 'result' (18aae8f)

  • admin: core package routes not registered (fd26b21)

  • admin: login routing check in auth middleware (460e5d3)

  • admin: routes not working properly (4b114a1)

  • authentication,cms,email,payments,storage: PATCH handlers exposed through PUT routes (d35a6f4)

  • authentication: enableTwoFa handler returning object message (#537) (02dc145)

  • authentication: fix ConduitActiveSchema initialization order (c5092ee)

  • authentication: import issues (12f840d)

  • authentication: type fix (1deccf8)

  • chat,cms,payments: remove implicit populate queryParam (9e9972a)

  • chat,payments,push-notifications: reference model User overwriting original schema ownership (c4b6be4)

  • chat: leaveRoom fixed (cce0a54)

  • CMS route GetSchemasFromOtherModules (e6431c4)

  • cms: cheking whenever a field exists (1d9145f)

  • cms: createCustomEndpoint valid operation check and route handler name (f0e0191)

  • cms: Declared schema not initializing properly (e70ab3d)

  • cms: duplicate route of POST /content/schemaName (0d6266e)

  • cms: editDocument argument must be of type ConduitJson (5fd7374)

  • cms: GetDocuments() must be POST request. Query var must be of type JSON. (49e38b7)

  • cms: GetSchemas enabled accidentally required (2a19ceb)

  • cms: getSchemas handler (15572e5)

  • cms: query must be body parameter. (cf01dac)

  • cms: rename the endpoint (52624e6)

  • cms: return types (e85ccdf)

  • cms: schema controller query (11788bb)

  • cms: schemaDefinitions migration (5c98033)

  • cms: schemaDefinitions migration missing try catch (159057f)

  • cms: spacing (91df34a)

  • cms: throw error when a field does not exist when editting documents. (693182a)

  • cms: toggleSchema, toggleSchemas handlers (a14c79c)

  • config: fix return case (da88d0f)

  • config: PUT returning empty config for some modules (e6d02a4)

  • config: wrong error response on config PUT for active=false (14e56a0)

  • database-provider: database-provider module renamed to 'database_provider' (c016bdf)

  • database-provider: remove botched findmany query in database save (#20) (7ee7ae1)

  • database,cms: migrations [Guided Migration] (5ec7ac7)

  • database,cms: requested changes in permissions (f2d0371)

  • database: createSchemaFromAdapter set modelOwner using grpc call's 'module-name' metadata (be350ac)

  • database: database was talking to itself (bb29a9e)

  • database: DeclaredSchema class missing modelOptions field (6e047dc)

  • database: DeclaredSchema.schema.ts name var (e58d533)

  • database: extensions contained "type" (f4baf08)

  • database: non-stringified queries in getDeclaredSchemas, getDeclaredSchemasExtensions (#24) (89a1a66)

  • database: rename DeclaredSchema back to _DeclaredSchema (6fe6fb7)

  • database: rename getDeclaredSchemaExtensions to getDeclaredSchemasExtensions (e714018)

  • dockerfile package names (080a4ff)

  • email: ConduitActiveSchema externalId field typo (36ef4ae)

  • email: emails were not sent properly (#540) (bebc39a)

  • github: payments provider deployment (95b21ce)

  • grpc-sdk,commons,database,cms: modelOptions conflict between ConduitSchema and SchemaDefinitions (ConduitSchema.modelOptions -> ConduitSchema.schemaOptions) (e7a9381)

  • grpc-sdk,commons,database: optimize permission checks (1bece2f)

  • grpc-sdk: explicitly rename auto-converted grpc metadata field moduleName to module-name (d6c6d62)

  • grpc-sdk: modulename injection to modules (a937344)

  • grpc-sdk: remove readonly flag from ConduitSchema.modelOptions (CMS.editSchema requirement) (5d85baa)

  • grpc-sdk: routing manager middleware parsing (83e261a)

  • payments: editProduct route's optional stripe.subscriptionId being required (306aee9)

  • payments: stripe object must contains only customerId (703b064)

  • pushNotifications: Prevent firebase app from initializing more than one time (a971a0a)

  • router,admin: route or getting registered routes moved to router package #1jtc9dd (3cdf4e7), closes #1jtc9

  • router: GraphQlParser constructName() (51813a2)

  • router: GraphQlParser typeString formatting (bef87ed)

  • router: GraphQlParser.getResultFromObject() call to constructorResolver() (c5e8747)

  • router: swagger parser params (6af9c73)

  • router: swagger parsing (up to a point) (7b507d6)

  • security: GetSecurityClient route requiring a urlParam id (34005b0)

  • SERVICE_URL rename to SERVICE_IP in all env variables (0fcb08a)

  • sms: send sms naming when register the route (#542) (eda7ad1)

  • storage: checking for active container (fe92abb)

  • storage: checking for Nil at createFile() (15fa78c)

  • storage: delete logs (977e7fe)

  • storage: migrate non admin routes (7e2291c)

  • storage: return types changed to File.getInstance().fields (c9aebf4)

  • storage: using id to delete folder,container instead of using name and container (e063c00)

  • upgrade @grpc/grpc-js from 1.4.3 to 1.5.0 (#10) (a98d078)

  • upgrade @grpc/grpc-js from 1.5.0 to 1.5.1 (#16) (c138378)

  • upgrade @grpc/grpc-js from 1.5.1 to 1.5.2 (#27) (f293e04)

  • upgrade @grpc/grpc-js from 1.5.2 to 1.5.3 (#28) (ec18e05)

  • upgrade @grpc/proto-loader from 0.5.4 to 0.6.9 (#5) (463e600)

  • upgrade @types/google-protobuf from 3.7.2 to 3.15.5 (#7) (a0173c9)

  • upgrade @types/ioredis from 4.28.1 to 4.28.7 (#9) (6652d03)

  • upgrade @types/lodash from 4.14.150 to 4.14.178 (#6) (14406bd)

  • upgrade ioredis from 4.28.0 to 4.28.3 (#11) (ceec73c)

  • upgrade lodash from 4.17.15 to 4.17.21 (#8) (ad8239f)

  • Generate form submission routes based on form id #225fw4q, refactor user routes async #1y7np0w (#532) (c287065), closes #225fw4 #1y7np0 #532

  • Route consistency changes #1vx9zpy (#518) (aa1c8ab), closes #1vx9 #518

  • cms,sms,push-notifications,authentication: {message} routes now return a String type (dbd2f2f)

  • cms: unnest getSchemas return fields from 'results' (9001254)

  • cms: user routes async #1y7np0w (#535) (c8e3ad0), closes #1y7np0

  • config: convert admin routes to ConduitRoutes (b0cf6cc)

  • database: renamed database-provider module to 'database' (1a4d1b6)

  • security: convert admin routes to ConduitRoutes (f1c61d4)

Conduit -

Published by kkopanidis over 2 years ago

Conduit -

Published by kkopanidis over 2 years ago