mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 16:23:06 +10:00
feat: add email domains (#1895)
Implemented Email Domains which allows Platform/Enterprise customers to send emails to recipients using their custom emails.
This commit is contained in:
@ -0,0 +1,94 @@
|
||||
-- [CUSTOM_MIGRATION] Required to fill in missing rows for `emailDocumentSettings` column.
|
||||
ALTER TABLE "OrganisationGlobalSettings" ADD COLUMN "emailDocumentSettings" JSONB;
|
||||
|
||||
-- [CUSTOM_CHANGE] Insert default values for `emailDocumentSettings` column.
|
||||
UPDATE "OrganisationGlobalSettings"
|
||||
SET "emailDocumentSettings" = '{
|
||||
"recipientSigningRequest": true,
|
||||
"recipientRemoved": true,
|
||||
"recipientSigned": true,
|
||||
"documentPending": true,
|
||||
"documentCompleted": true,
|
||||
"documentDeleted": true,
|
||||
"ownerDocumentCompleted": true
|
||||
}'::jsonb
|
||||
WHERE "emailDocumentSettings" IS NULL;
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "EmailDomainStatus" AS ENUM ('PENDING', 'ACTIVE');
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "DocumentMeta" ADD COLUMN "emailId" TEXT,
|
||||
ADD COLUMN "emailReplyTo" TEXT;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "OrganisationGlobalSettings" ADD COLUMN "documentDateFormat" TEXT NOT NULL DEFAULT 'yyyy-MM-dd hh:mm a',
|
||||
ADD COLUMN "documentTimezone" TEXT,
|
||||
ADD COLUMN "emailId" TEXT,
|
||||
ADD COLUMN "emailReplyTo" TEXT;
|
||||
|
||||
-- [CUSTOM_MIGRATION] Set the `emailDocumentSettings` column back to not null.
|
||||
ALTER TABLE "OrganisationGlobalSettings" ALTER COLUMN "emailDocumentSettings" SET NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "TeamGlobalSettings" ADD COLUMN "documentDateFormat" TEXT,
|
||||
ADD COLUMN "documentTimezone" TEXT,
|
||||
ADD COLUMN "emailDocumentSettings" JSONB,
|
||||
ADD COLUMN "emailId" TEXT,
|
||||
ADD COLUMN "emailReplyTo" TEXT;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "TemplateMeta" ADD COLUMN "emailId" TEXT,
|
||||
ADD COLUMN "emailReplyTo" TEXT;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "EmailDomain" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"status" "EmailDomainStatus" NOT NULL DEFAULT 'PENDING',
|
||||
"selector" TEXT NOT NULL,
|
||||
"domain" TEXT NOT NULL,
|
||||
"publicKey" TEXT NOT NULL,
|
||||
"privateKey" TEXT NOT NULL,
|
||||
"organisationId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "EmailDomain_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "OrganisationEmail" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"email" TEXT NOT NULL,
|
||||
"emailName" TEXT NOT NULL,
|
||||
"emailDomainId" TEXT NOT NULL,
|
||||
"organisationId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "OrganisationEmail_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "EmailDomain_selector_key" ON "EmailDomain"("selector");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "EmailDomain_domain_key" ON "EmailDomain"("domain");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "OrganisationEmail_email_key" ON "OrganisationEmail"("email");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "OrganisationGlobalSettings" ADD CONSTRAINT "OrganisationGlobalSettings_emailId_fkey" FOREIGN KEY ("emailId") REFERENCES "OrganisationEmail"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TeamGlobalSettings" ADD CONSTRAINT "TeamGlobalSettings_emailId_fkey" FOREIGN KEY ("emailId") REFERENCES "OrganisationEmail"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "EmailDomain" ADD CONSTRAINT "EmailDomain_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "OrganisationEmail" ADD CONSTRAINT "OrganisationEmail_emailDomainId_fkey" FOREIGN KEY ("emailDomainId") REFERENCES "EmailDomain"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "OrganisationEmail" ADD CONSTRAINT "OrganisationEmail_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user