55 * Rocket.Chat instances, Matrix homeservers, and user credentials needed
66 * for end-to-end federation testing.
77 */
8- export interface IFederationConfig {
9- rc1 : {
10- apiUrl : string ;
11- adminUser : string ;
12- adminPassword : string ;
13- adminMatrixUserId : string ;
14- additionalUser1 : {
15- username : string ;
16- password : string ;
17- matrixUserId : string ;
18- } ;
19- } ;
20- hs1 : {
21- url : string ;
22- adminMatrixUserId : string ;
23- adminUser : string ;
24- adminPassword : string ;
25- additionalUser1 : {
26- username : string ;
27- password : string ;
28- matrixUserId : string ;
29- } ;
8+
9+ type FederationServerConfig = {
10+ url : string ;
11+ domain : string ;
12+ adminUser : string ;
13+ adminPassword : string ;
14+ adminMatrixUserId : string ;
15+ additionalUser1 : {
16+ username : string ;
17+ password : string ;
18+ matrixUserId : string ;
3019 } ;
20+ } ;
21+ export interface IFederationConfig {
22+ rc1 : FederationServerConfig ;
23+ hs1 : FederationServerConfig ;
3124}
3225
3326/**
@@ -38,13 +31,12 @@ export interface IFederationConfig {
3831 * Throws an error if a required variable is missing or empty.
3932 *
4033 * @param name - The name of the environment variable for error messages
41- * @param value - The environment variable value (may be undefined)
4234 * @param defaultValue - Optional default value to use if variable is not set
4335 * @returns The validated value (either the env var or default)
4436 * @throws Error if the variable is required but missing or empty
4537 */
46- function validateEnvVar ( name : string , value : string | undefined , defaultValue ?: string ) : string {
47- const finalValue = value || defaultValue ;
38+ function validateEnvVar ( name : string , defaultValue ?: string ) : string {
39+ const finalValue = process . env [ name ] || defaultValue ;
4840 if ( ! finalValue || finalValue . trim ( ) === '' ) {
4941 throw new Error ( `Required environment variable ${ name } is not set or is empty` ) ;
5042 }
@@ -63,46 +55,40 @@ function validateEnvVar(name: string, value: string | undefined, defaultValue?:
6355 * @throws Error if any required configuration is missing or invalid
6456 */
6557function getFederationConfig ( ) : IFederationConfig {
66- const rcDomain = validateEnvVar ( 'FEDERATION_RC1_DOMAIN' , process . env . FEDERATION_RC1_DOMAIN , 'rc1' ) ;
67- const rcAdminUser = validateEnvVar ( 'FEDERATION_RC1_ADMIN_USER' , process . env . FEDERATION_RC1_ADMIN_USER , 'admin' ) ;
68- const rcAdditionalUser1 = validateEnvVar ( 'FEDERATION_RC1_ADDITIONAL_USER1' , process . env . FEDERATION_RC1_ADDITIONAL_USER1 , 'user2' ) ;
58+ const rcDomain = validateEnvVar ( 'FEDERATION_RC1_DOMAIN' , 'rc1' ) ;
59+ const rcAdminUser = validateEnvVar ( 'FEDERATION_RC1_ADMIN_USER' , 'admin' ) ;
60+ const rcAdminPassword = validateEnvVar ( 'FEDERATION_RC1_ADMIN_PASSWORD' , 'admin' ) ;
61+ const rcAdditionalUser1 = validateEnvVar ( 'FEDERATION_RC1_ADDITIONAL_USER1' , 'user2' ) ;
62+ const rcAdditionalUser1Password = validateEnvVar ( 'FEDERATION_RC1_ADDITIONAL_USER1_PASSWORD' , 'user2pass' ) ;
6963
70- const hs1Domain = validateEnvVar ( 'FEDERATION_SYNAPSE_DOMAIN' , process . env . FEDERATION_SYNAPSE_DOMAIN , 'hs1' ) ;
71- const hs1AdminUser = validateEnvVar ( 'FEDERATION_SYNAPSE_ADMIN_USER' , process . env . FEDERATION_SYNAPSE_ADMIN_USER , 'admin' ) ;
72- const hs1AdditionalUser1 = validateEnvVar (
73- 'FEDERATION_SYNAPSE_ADDITIONAL_USER1' ,
74- process . env . FEDERATION_SYNAPSE_ADDITIONAL_USER1 ,
75- 'alice' ,
76- ) ;
64+ const hs1Domain = validateEnvVar ( 'FEDERATION_SYNAPSE_DOMAIN' , 'hs1' ) ;
65+ const hs1AdminUser = validateEnvVar ( 'FEDERATION_SYNAPSE_ADMIN_USER' , 'admin' ) ;
66+ const hs1AdminPassword = validateEnvVar ( 'FEDERATION_SYNAPSE_ADMIN_PASSWORD' , 'admin' ) ;
67+ const hs1AdditionalUser1 = validateEnvVar ( 'FEDERATION_SYNAPSE_ADDITIONAL_USER1' , 'alice' ) ;
68+ const hs1AdditionalUser1Password = validateEnvVar ( 'FEDERATION_SYNAPSE_ADDITIONAL_USER1_PASSWORD' , 'alice' ) ;
7769
7870 return {
7971 rc1 : {
80- apiUrl : `https://${ rcDomain } ` ,
72+ url : `https://${ rcDomain } ` ,
73+ domain : rcDomain ,
8174 adminUser : rcAdminUser ,
82- adminPassword : validateEnvVar ( 'FEDERATION_RC1_ADMIN_PASSWORD' , process . env . FEDERATION_RC1_ADMIN_PASSWORD , 'admin' ) ,
75+ adminPassword : rcAdminPassword ,
8376 adminMatrixUserId : `@${ rcAdminUser } :${ rcDomain } ` ,
8477 additionalUser1 : {
8578 username : rcAdditionalUser1 ,
86- password : validateEnvVar (
87- 'FEDERATION_RC1_ADDITIONAL_USER1_PASSWORD' ,
88- process . env . FEDERATION_RC1_ADDITIONAL_USER1_PASSWORD ,
89- 'user2pass' ,
90- ) ,
79+ password : rcAdditionalUser1Password ,
9180 matrixUserId : `@${ rcAdditionalUser1 } :${ rcDomain } ` ,
9281 } ,
9382 } ,
9483 hs1 : {
9584 url : `https://${ hs1Domain } ` ,
85+ domain : hs1Domain ,
9686 adminUser : hs1AdminUser ,
9787 adminMatrixUserId : `@${ hs1AdminUser } :${ hs1Domain } ` ,
98- adminPassword : validateEnvVar ( 'FEDERATION_SYNAPSE_ADMIN_PASSWORD' , process . env . FEDERATION_SYNAPSE_ADMIN_PASSWORD , 'admin' ) ,
88+ adminPassword : hs1AdminPassword ,
9989 additionalUser1 : {
10090 username : hs1AdditionalUser1 ,
101- password : validateEnvVar (
102- 'FEDERATION_SYNAPSE_ADDITIONAL_USER1_PASSWORD' ,
103- process . env . FEDERATION_SYNAPSE_ADDITIONAL_USER1_PASSWORD ,
104- 'alice' ,
105- ) ,
91+ password : hs1AdditionalUser1Password ,
10692 matrixUserId : `@${ hs1AdditionalUser1 } :${ hs1Domain } ` ,
10793 } ,
10894 } ,
0 commit comments