From 731ef7c26083f750d370e4e500c943cfea8ddcfb Mon Sep 17 00:00:00 2001 From: Andrew Dawson Date: Fri, 26 Jul 2019 12:21:56 -0700 Subject: [PATCH] Add persistence domain config validation check --- service/frontend/domainAttrValidator.go | 10 +++++++--- service/frontend/workflowHandler.go | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/service/frontend/domainAttrValidator.go b/service/frontend/domainAttrValidator.go index 7d268c9c255..9a433a0d817 100644 --- a/service/frontend/domainAttrValidator.go +++ b/service/frontend/domainAttrValidator.go @@ -46,12 +46,16 @@ func newDomainAttrValidator( } } -func (d *domainAttrValidatorImpl) validateDomainConfig( - config *persistence.DomainConfig, -) error { +func (d *domainAttrValidatorImpl) validateDomainConfig(config *persistence.DomainConfig) error { if config.Retention < int32(d.minRetentionDays) { return errInvalidRetentionPeriod } + if config.HistoryArchivalStatus == shared.ArchivalStatusEnabled && len(config.HistoryArchivalURI) == 0 { + return errInvalidArchivalConfig + } + if config.VisibilityArchivalStatus == shared.ArchivalStatusEnabled && len(config.VisibilityArchivalURI) == 0 { + return errInvalidArchivalConfig + } return nil } diff --git a/service/frontend/workflowHandler.go b/service/frontend/workflowHandler.go index abb349ea169..d323e5b036c 100644 --- a/service/frontend/workflowHandler.go +++ b/service/frontend/workflowHandler.go @@ -119,6 +119,7 @@ var ( errInvalidTaskStartToCloseTimeoutSeconds = &gen.BadRequestError{Message: "A valid TaskStartToCloseTimeoutSeconds is not set on request."} errClientVersionNotSet = &gen.BadRequestError{Message: "Client version is not set on request."} errInvalidRetentionPeriod = &gen.BadRequestError{Message: "A valid retention period is not set on request."} + errInvalidArchivalConfig = &gen.BadRequestError{Message: "Invalid to enable archival without specifying a uri."} // err for archival errHistoryHasPassedRetentionPeriod = &gen.BadRequestError{Message: "Requested workflow history has passed retention period."}