def create_app(application): from app.config import configs notify_environment = os.getenv("NOTIFY_ENVIRONMENT", "development") application.config.from_object(configs[notify_environment]) application.config["NOTIFY_APP_NAME"] = application.name init_app(application) request_helper.init_app(application) db.init_app(application) migrate.init_app(application, db=db) ma.init_app(application) zendesk_client.init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) aws_sns_client.init_app(application, statsd_client=statsd_client) aws_ses_client.init_app(application.config["AWS_REGION"], statsd_client=statsd_client) notify_celery.init_app(application) encryption.init_app(application) redis_store.init_app(application) performance_platform_client.init_app(application) document_download_client.init_app(application) clients.init_app(sms_clients=[aws_sns_client], email_clients=[aws_ses_client]) register_blueprint(application) register_v2_blueprints(application) # avoid circular imports by importing this file later from app.commands import setup_commands setup_commands(application) return application
def create_app(application): from app.config import configs notify_environment = os.getenv('NOTIFY_ENVIRONMENT', 'development') application.config.from_object(configs[notify_environment]) application.config['NOTIFY_APP_NAME'] = application.name init_app(application) request_helper.init_app(application) db.init_app(application) migrate.init_app(application, db=db) ma.init_app(application) zendesk_client.init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) firetext_client.init_app(application, statsd_client=statsd_client) loadtest_client.init_app(application, statsd_client=statsd_client) mmg_client.init_app(application, statsd_client=statsd_client) aws_sns_client.init_app(application, statsd_client=statsd_client) aws_pinpoint_client.init_app(application, statsd_client=statsd_client) aws_ses_client.init_app(application.config['AWS_SES_REGION'], statsd_client=statsd_client) send_grid_client.init_app(application.config['SENDGRID_API_KEY'], statsd_client=statsd_client) twilio_sms_client.init_app( logger=application.logger, callback_notify_url_host=application.config["API_HOST_NAME"]) sinch_sms_client.init_app( logger=application.logger, callback_notify_url_host=application.config["API_HOST_NAME"], statsd_client=statsd_client) notify_celery.init_app(application) encryption.init_app(application) redis_store.init_app(application) performance_platform_client.init_app(application) document_download_client.init_app(application) clients.init_app(sms_clients=[ firetext_client, mmg_client, aws_sns_client, aws_pinpoint_client, loadtest_client, twilio_sms_client, sinch_sms_client, ], email_clients=[aws_ses_client, send_grid_client]) register_blueprint(application) register_v2_blueprints(application) # avoid circular imports by importing this file later from app.commands import setup_commands setup_commands(application) return application
def create_app(application): from app.config import configs notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) application.config['NOTIFY_APP_NAME'] = application.name init_app(application) # Metrics intentionally high up to give the most accurate timing and reliability that the metric is recorded metrics.init_app(application) request_helper.init_app(application) db.init_app(application) migrate.init_app(application, db=db) ma.init_app(application) zendesk_client.init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) firetext_client.init_app(application, statsd_client=statsd_client) mmg_client.init_app(application, statsd_client=statsd_client) twilio_client.init_app(application, statsd_client=statsd_client) aws_ses_client.init_app(application.config['AWS_REGION'], statsd_client=statsd_client) aws_ses_stub_client.init_app(application.config['AWS_REGION'], statsd_client=statsd_client, stub_url=application.config['SES_STUB_URL']) # If a stub url is provided for SES, then use the stub client rather than the real SES boto client email_clients = [ aws_ses_stub_client ] if application.config['SES_STUB_URL'] else [aws_ses_client] notification_provider_clients.init_app( sms_clients=[firetext_client, mmg_client, twilio_client], email_clients=email_clients) notify_celery.init_app(application) encryption.init_app(application) redis_store.init_app(application) performance_platform_client.init_app(application) document_download_client.init_app(application) cbc_proxy_client.init_app(application) register_blueprint(application) register_v2_blueprints(application) # avoid circular imports by importing this file later from app.commands import setup_commands setup_commands(application) # set up sqlalchemy events setup_sqlalchemy_events(application) return application
def create_app(application): setup_commands(application) notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) init_app(application) statsd_client.init_app(application) deskpro_client.init_app(application) logging.init_app(application, statsd_client) csrf.init_app(application) request_helper.init_app(application) service_api_client.init_app(application) user_api_client.init_app(application) api_key_api_client.init_app(application) job_api_client.init_app(application) notification_api_client.init_app(application) support_api_client.init_app(application) status_api_client.init_app(application) invite_api_client.init_app(application) org_invite_api_client.init_app(application) template_statistics_client.init_app(application) events_api_client.init_app(application) provider_client.init_app(application) email_branding_client.init_app(application) organisations_client.init_app(application) letter_jobs_client.init_app(application) inbound_number_client.init_app(application) billing_api_client.init_app(application) complaint_api_client.init_app(application) platform_stats_api_client.init_app(application) login_manager.init_app(application) login_manager.login_view = 'main.sign_in' login_manager.login_message_category = 'default' login_manager.session_protection = None login_manager.anonymous_user = AnonymousUser from app.main import main as main_blueprint application.register_blueprint(main_blueprint) from .status import status as status_blueprint application.register_blueprint(status_blueprint) proxy_fix.init_app(application) add_template_filters(application) register_errorhandlers(application) setup_event_handlers()
def create_app(application): from app.config import configs notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) application.config['NOTIFY_APP_NAME'] = application.name init_app(application) request_helper.init_app(application) db.init_app(application) migrate.init_app(application, db=db) ma.init_app(application) deskpro_client.init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) telstra_sms_client.init_app( logger=application.logger, callback_notify_url_host=application.config["API_HOST_NAME"]) twilio_sms_client.init_app( logger=application.logger, callback_notify_url_host=application.config["API_HOST_NAME"]) aws_ses_client.init_app(application.config['AWS_SES_REGION'], application.config['AWS_SES_ACCESS_KEY_ID'], application.config['AWS_SES_SECRET_ACCESS_KEY'], statsd_client=statsd_client) smtp_client.init_app(application, statsd_client=statsd_client) notify_celery.init_app(application) encryption.init_app(application) redis_store.init_app(application) performance_platform_client.init_app(application) clients.init_app(sms_clients=[twilio_sms_client, telstra_sms_client], email_clients=[aws_ses_client, smtp_client]) register_blueprint(application) register_v2_blueprints(application) # avoid circular imports by importing this file later from app.commands import setup_commands setup_commands(application) return application
def create_app(application): setup_commands(application) from app.config import configs from app.views import main_blueprint notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) request_helper.init_app(application) notify_celery.init_app(application) application.register_blueprint(main_blueprint) return application
def create_app(): application = Flask( __name__, static_folder=str(DIST), ) from app.config import configs environment = os.getenv('NOTIFY_ENVIRONMENT', 'development') application.config.from_object(configs[environment]) from app.main import bp as main application.register_blueprint(main) from app.commands import setup_commands setup_commands(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) notify_celery.init_app(application) alerts_api_client.init_app(application) return application
def create_app(application): setup_commands(application) notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) asset_fingerprinter._cdn_domain = application.config['ASSET_DOMAIN'] asset_fingerprinter._asset_root = application.config['ASSET_PATH'] application.config["BABEL_DEFAULT_LOCALE"] = "en" babel = Babel(application) @babel.localeselector def get_locale(): return get_current_locale(application) init_app(application) for client in ( # Gubbins csrf, login_manager, proxy_fix, request_helper, cache, # API clients api_key_api_client, billing_api_client, complaint_api_client, email_branding_client, events_api_client, inbound_number_client, invite_api_client, job_api_client, letter_branding_client, letter_jobs_client, notification_api_client, org_invite_api_client, organisations_client, platform_stats_api_client, provider_client, service_api_client, status_api_client, template_folder_api_client, template_statistics_client, template_api_prefill_client, user_api_client, # External API clients antivirus_client, statsd_client, zendesk_client, redis_client ): client.init_app(application) logging.init_app(application, statsd_client) login_manager.login_view = 'main.sign_in' login_manager.login_message_category = 'default' login_manager.session_protection = None login_manager.anonymous_user = AnonymousUser # make sure we handle unicode correctly redis_client.redis_store.decode_responses = True from app.main import main as main_blueprint application.register_blueprint(main_blueprint) from .status import status as status_blueprint application.register_blueprint(status_blueprint) add_template_filters(application) register_errorhandlers(application) setup_event_handlers()
def create_app(application): setup_commands(application) notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) asset_fingerprinter._asset_root = application.config['ASSET_PATH'] init_app(application) init_govuk_frontend(application) init_jinja(application) for client in ( # Gubbins # Note, metrics purposefully first so we start measuring response times as early as possible before any # other `app.before_request` handlers (introduced by any of these clients) are processed (which would # otherwise mean we aren't measuring the full response time) metrics, csrf, login_manager, proxy_fix, request_helper, # API clients api_key_api_client, billing_api_client, broadcast_message_api_client, contact_list_api_client, complaint_api_client, email_branding_client, events_api_client, inbound_number_client, invite_api_client, job_api_client, letter_branding_client, letter_jobs_client, notification_api_client, org_invite_api_client, organisations_client, platform_stats_api_client, provider_client, service_api_client, status_api_client, template_folder_api_client, template_statistics_client, upload_api_client, user_api_client, # External API clients antivirus_client, redis_client, zendesk_client, ): client.init_app(application) logging.init_app(application) login_manager.login_view = 'main.sign_in' login_manager.login_message_category = 'default' login_manager.session_protection = None login_manager.anonymous_user = AnonymousUser # make sure we handle unicode correctly redis_client.redis_store.decode_responses = True setup_blueprints(application) add_template_filters(application) register_errorhandlers(application) setup_event_handlers()
def create_app(application): setup_commands(application) notify_environment = os.environ["NOTIFY_ENVIRONMENT"] application.config.from_object(configs[notify_environment]) asset_fingerprinter._cdn_domain = application.config["ASSET_DOMAIN"] asset_fingerprinter._asset_root = urljoin( application.config["ADMIN_BASE_URL"], application.config["ASSET_PATH"]) application.config["BABEL_DEFAULT_LOCALE"] = "en" babel = Babel(application) @babel.localeselector def get_locale(): return get_current_locale(application) init_app(application) for client in ( # Gubbins csrf, login_manager, proxy_fix, request_helper, cache, # API clients api_key_api_client, billing_api_client, complaint_api_client, email_branding_client, events_api_client, inbound_number_client, invite_api_client, job_api_client, letter_branding_client, letter_jobs_client, notification_api_client, org_invite_api_client, organisations_client, platform_stats_api_client, provider_client, service_api_client, status_api_client, template_folder_api_client, template_statistics_client, template_api_prefill_client, user_api_client, # External API clients antivirus_client, statsd_client, zendesk_client, redis_client, ): client.init_app(application) logging.init_app(application, statsd_client) # Log a warning message if Redis is not enabled if not application.config["REDIS_ENABLED"]: application.logger.warning( "Redis is not enabled. Some features may not be supported. " "If you want to enable Redis, look at REDIS_* config variables.") login_manager.login_view = "main.sign_in" login_manager.login_message_category = "default" login_manager.session_protection = None login_manager.anonymous_user = AnonymousUser # make sure we handle unicode correctly redis_client.redis_store.decode_responses = True from app.main import main as main_blueprint application.register_blueprint(main_blueprint) from .status import status as status_blueprint application.register_blueprint(status_blueprint) add_template_filters(application) register_errorhandlers(application) setup_event_handlers()
def create_app(application): from app.config import configs notify_environment = os.getenv('NOTIFY_ENVIRONMENT', 'development') application.config.from_object(configs[notify_environment]) application.config['NOTIFY_APP_NAME'] = application.name init_app(application) request_helper.init_app(application) db.init_app(application) migrate.init_app(application, db=db) ma.init_app(application) zendesk_client.init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) firetext_client.init_app(application, statsd_client=statsd_client) loadtest_client.init_app(application, statsd_client=statsd_client) mmg_client.init_app(application, statsd_client=statsd_client) aws_sns_client.init_app(aws_region=application.config['AWS_REGION'], statsd_client=statsd_client, logger=application.logger) aws_ses_client.init_app( application.config['AWS_REGION'], logger=application.logger, statsd_client=statsd_client, email_from_domain=application.config['AWS_SES_EMAIL_FROM_DOMAIN'], email_from_user=application.config['AWS_SES_EMAIL_FROM_USER'], default_reply_to=application.config['AWS_SES_DEFAULT_REPLY_TO'], configuration_set=application.config['AWS_SES_CONFIGURATION_SET'], endpoint_url=application.config['AWS_SES_ENDPOINT_URL']) send_grid_client.init_app(application.config['SENDGRID_API_KEY'], statsd_client=statsd_client) govdelivery_client.init_app(application.config['GRANICUS_TOKEN'], application.config['GRANICUS_URL'], statsd_client) twilio_sms_client.init_app( logger=application.logger, callback_notify_url_host=application.config["API_HOST_NAME"]) aws_pinpoint_client.init_app(application.config['AWS_PINPOINT_APP_ID'], application.config['AWS_REGION'], application.logger, application.config['FROM_NUMBER'], statsd_client) va_profile_client.init_app(application.logger, application.config['VA_PROFILE_URL'], application.config['VANOTIFY_SSL_CERT_PATH'], application.config['VANOTIFY_SSL_KEY_PATH'], statsd_client) mpi_client.init_app(application.logger, application.config['MPI_URL'], application.config['VANOTIFY_SSL_CERT_PATH'], application.config['VANOTIFY_SSL_KEY_PATH'], statsd_client) notify_celery.init_app(application) encryption.init_app(application) redis_store.init_app(application) performance_platform_client.init_app(application) document_download_client.init_app(application) clients.init_app( sms_clients=[ firetext_client, mmg_client, aws_sns_client, loadtest_client, twilio_sms_client, aws_pinpoint_client ], email_clients=[aws_ses_client, send_grid_client, govdelivery_client]) provider_service.init_app( email_provider_selection_strategy_label=application. config['EMAIL_PROVIDER_SELECTION_STRATEGY_LABEL'], sms_provider_selection_strategy_label=application. config['SMS_PROVIDER_SELECTION_STRATEGY_LABEL']) oauth_registry.init_app(application) jwt.init_app(application) register_blueprint(application) register_v2_blueprints(application) # avoid circular imports by importing this file later from app.commands import setup_commands setup_commands(application) CORS(application) return application
def create_app(application): setup_commands(application) notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) asset_fingerprinter._asset_root = application.config['ASSET_PATH'] init_app(application) init_govuk_frontend(application) init_jinja(application) for client in ( # Gubbins csrf, login_manager, proxy_fix, request_helper, # API clients api_key_api_client, billing_api_client, complaint_api_client, email_branding_client, events_api_client, inbound_number_client, invite_api_client, job_api_client, letter_branding_client, letter_jobs_client, notification_api_client, org_invite_api_client, organisations_client, platform_stats_api_client, provider_client, service_api_client, status_api_client, template_folder_api_client, template_statistics_client, user_api_client, # External API clients antivirus_client, statsd_client, zendesk_client, redis_client): client.init_app(application) logging.init_app(application, statsd_client) login_manager.login_view = 'main.sign_in' login_manager.login_message_category = 'default' login_manager.session_protection = None login_manager.anonymous_user = AnonymousUser # make sure we handle unicode correctly redis_client.redis_store.decode_responses = True setup_blueprints(application) add_template_filters(application) register_errorhandlers(application) setup_event_handlers()
def create_app(application): setup_commands(application) notify_environment = os.environ['NOTIFY_ENVIRONMENT'] application.config.from_object(configs[notify_environment]) init_app(application) for client in ( # Gubbins csrf, login_manager, proxy_fix, request_helper, # API clients api_key_api_client, billing_api_client, complaint_api_client, email_branding_client, events_api_client, inbound_number_client, invite_api_client, job_api_client, letter_jobs_client, notification_api_client, org_invite_api_client, organisations_client, platform_stats_api_client, provider_client, service_api_client, status_api_client, support_api_client, template_statistics_client, user_api_client, callback_failures_client, # External API clients statsd_client, deskpro_client): client.init_app(application) logging.init_app(application, statsd_client) login_manager.login_view = 'main.sign_in' login_manager.login_message_category = 'default' login_manager.session_protection = None login_manager.anonymous_user = AnonymousUser from app.main import main as main_blueprint application.register_blueprint(main_blueprint) from .status import status as status_blueprint application.register_blueprint(status_blueprint) add_template_filters(application) register_errorhandlers(application) setup_event_handlers()