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 test_request_id_is_set_on_response(app): request_helper.init_app(app) client = app.test_client() with app.app_context(): response = client.get('/', headers={'NotifyRequestID': 'generated'}) assert response.headers['NotifyRequestID'] == 'generated'
def create_app(application): application.config.from_object(configs[os.environ['NOTIFY_ENVIRONMENT']]) application.url_map.converters['base64_uuid'] = Base64UUIDConverter babel = Babel(application) @babel.localeselector def get_locale(): return get_current_locale(application) init_app(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) csrf.init_app(application) request_helper.init_app(application) 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) service_api_client.init_app(application)
def create_app(): application = Flask(__name__) init_app(application) load_config(application) from app.precompiled import precompiled_blueprint from app.preview import preview_blueprint from app.status import status_blueprint application.register_blueprint(status_blueprint) application.register_blueprint(preview_blueprint) application.register_blueprint(precompiled_blueprint) application.statsd_client = StatsdClient() application.statsd_client.init_app(application) application.encryption_client = Encryption() application.encryption_client.init_app(application) utils_logging.init_app(application, application.statsd_client) weasyprint_hack.init_app(application) request_helper.init_app(application) notify_celery.init_app(application) application.cache = init_cache(application) @auth.verify_token def verify_token(token): return token in application.config['TEMPLATE_PREVIEW_INTERNAL_SECRETS'] 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 test_request_id_is_set_on_response(app): request_helper.init_app(app) client = app.test_client() with app.app_context(): response = client.get('/', headers={ 'X-B3-TraceId': 'generated', 'X-B3-SpanId': 'generated' }) assert response.headers['X-B3-TraceId'] == 'generated' assert response.headers['X-B3-SpanId'] == 'generated'
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 test_request_id_is_set_on_error_response(app): request_helper.init_app(app) client = app.test_client() # turn off DEBUG so that the flask default error handler gets triggered app.config['DEBUG'] = False @app.route('/') def error_route(): raise Exception() with app.app_context(): response = client.get('/', headers={'NotifyRequestID': 'generated'}) assert response.status_code == 500 assert response.headers['NotifyRequestID'] == 'generated'
def create_app(): application = Flask('app', static_folder=None) application.config.from_object(configs[os.environ['NOTIFY_ENVIRONMENT']]) request_helper.init_app(application) logging.init_app(application) document_store.init_app(application) antivirus_client.init_app(application) application.register_blueprint(download_blueprint) application.register_blueprint(upload_blueprint) application.register_blueprint(healthcheck_blueprint) return application
def create_app(): application = Flask('app') application.config.from_object(configs[application.env]) request_helper.init_app(application) logging.init_app(application) document_store.init_app(application) antivirus_client.init_app(application) metrics.init_app(application) application.register_blueprint(download_blueprint) application.register_blueprint(upload_blueprint) 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) 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): application.config.from_object(configs[application.env]) application.url_map.converters['base64_uuid'] = Base64UUIDConverter init_app(application) init_govuk_frontend(application) init_jinja(application) statsd_client.init_app(application) logging.init_app(application, statsd_client) csrf.init_app(application) request_helper.init_app(application) 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) service_api_client.init_app(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(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