def create_appsettings_file()

in src/Saas.Identity/Saas.IdentityProvider/deployment/script/generate-ief-policies.py [0:0]


def create_appsettings_file(config_file: str, app_settings_file: str) -> None:
    # Read the config manifest file
    with open(config_file, 'r') as f:
        config = json.load(f)

    # get the values to be added to the appsettings file
    name = config['environment']
    production = config['environment'] == 'Production'
    tenant = config['deployment']['azureb2c']['domainName']
    identityExperienceFrameworkAppId = get_app_value(config, "IdentityExperienceFramework", "appId")
    proxyIdentityExperienceFrameworkAppId = get_app_value(config, "ProxyIdentityExperienceFramework", "appId")
    permissionsAPIUrl = get_app_value(config, "permissions-api", "permissionsApiUrl")
    rolesAPIUrl = get_app_value(config, "permissions-api", "rolesApiUrl")
    restAPIKey = "B2C_1A_" + "RestApiKey"

    # create the policySettings part of the appSettings json file
    policySettings = AppSettings.PolicySettings(
        identityExperienceFrameworkAppId, 
        proxyIdentityExperienceFrameworkAppId, 
        permissionsAPIUrl, 
        rolesAPIUrl,
        restAPIKey)
    
    # add the environment part of the appSettings json file
    environment = AppSettings.Environment(name, production, tenant, policySettings)
    appsettings = AppSettings.Appsettings([environment])

    # write the appsettings json file to the specificied file name and directory
    # overwrite if it exists
    with open(app_settings_file, 'w') as f:
        f.write(appsettings.toJson())