@@ -734,6 +734,12 @@ const RolePolicySchema = Joi.object().keys({
734734 * and update CubePropContextTranspiler.transpiledFieldsPatterns
735735 **************************** */
736736
737+ const hierarchySchema = Joi . object ( ) . pattern ( identifierRegex , Joi . object ( ) . keys ( {
738+ title : Joi . string ( ) ,
739+ public : Joi . boolean ( ) . strict ( ) ,
740+ levels : Joi . func ( )
741+ } ) ) ;
742+
737743const baseSchema = {
738744 name : identifier ,
739745 refreshKey : CubeRefreshKeySchema ,
@@ -760,26 +766,13 @@ const baseSchema = {
760766 dimensions : DimensionsSchema ,
761767 segments : SegmentsSchema ,
762768 preAggregations : PreAggregationsAlternatives ,
763- folders : Joi . array ( ) . items ( Joi . object ( ) . keys ( {
764- name : Joi . string ( ) . required ( ) ,
765- includes : Joi . alternatives ( [
766- Joi . string ( ) . valid ( '*' ) ,
767- Joi . array ( ) . items ( Joi . string ( ) . required ( ) )
768- ] ) . required ( ) ,
769- } ) ) ,
770769 accessPolicy : Joi . array ( ) . items ( RolePolicySchema . required ( ) ) ,
770+ hierarchies : hierarchySchema ,
771771} ;
772772
773- const hierarchySchema = Joi . object ( ) . pattern ( identifierRegex , Joi . object ( ) . keys ( {
774- title : Joi . string ( ) ,
775- public : Joi . boolean ( ) . strict ( ) ,
776- levels : Joi . func ( )
777- } ) ) ;
778-
779773const cubeSchema = inherit ( baseSchema , {
780774 sql : Joi . func ( ) ,
781775 sqlTable : Joi . func ( ) ,
782- hierarchies : hierarchySchema ,
783776} ) . xor ( 'sql' , 'sqlTable' ) . messages ( {
784777 'object.xor' : 'You must use either sql or sqlTable within a model, but not both'
785778} ) ;
@@ -811,8 +804,13 @@ const viewSchema = inherit(baseSchema, {
811804 'object.oxor' : 'Using split together with prefix is not supported'
812805 } )
813806 ) ,
814- accessPolicy : Joi . array ( ) . items ( RolePolicySchema . required ( ) ) ,
815- hierarchies : hierarchySchema ,
807+ folders : Joi . array ( ) . items ( Joi . object ( ) . keys ( {
808+ name : Joi . string ( ) . required ( ) ,
809+ includes : Joi . alternatives ( [
810+ Joi . string ( ) . valid ( '*' ) ,
811+ Joi . array ( ) . items ( Joi . string ( ) . required ( ) )
812+ ] ) . required ( ) ,
813+ } ) ) ,
816814} ) ;
817815
818816function formatErrorMessageFromDetails ( explain , d ) {
0 commit comments