"""Main entry point for the Split.io feature flag backup script.""" import boto3 from config import ( logger, S3_BUCKET_NAME, SENTRY_DSN, SPLITIO_ADMIN_API_KEY, SPLITIO_WORKSPACE_ID, ) import sentry_sdk from src.backup import backup_feature_flags from src.connectors.datadog import publish_metric from src.connectors.splitio_client import SplitIOClient sentry_sdk.init( dsn=SENTRY_DSN, traces_sample_rate=1.0, ) if __name__ == '__main__': """ Main entry point for the backup script. """ try: publish_metric( metric='splitio_ff_backup.attempt', value=1, ) s3_client = boto3.client('s3') splitio_client = SplitIOClient( api_key=SPLITIO_ADMIN_API_KEY if isinstance(SPLITIO_ADMIN_API_KEY, str) else '', workspace_id=SPLITIO_WORKSPACE_ID if isinstance(SPLITIO_WORKSPACE_ID, str) else '' ) backup_feature_flags( splitio_client=splitio_client, s3_client=s3_client, s3_bucket=S3_BUCKET_NAME ) publish_metric( metric='splitio_ff_backup.success', value=1, ) except Exception as e: publish_metric( metric='splitio_ff_backup.error', value=1, ) logger.error(f'An error occurred during feature flag backup: {e}') raise