nui-lambda-shared-utils 1.1.0__tar.gz → 1.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/PKG-INFO +1 -1
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_client.py +27 -13
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.editorconfig +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/ci.yml +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/publish.yml +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/test.yml +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.markdownlint-cli2.yaml +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/CLAUDE.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/CONTRIBUTING.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/LICENSE +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/MANIFEST.in +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/README.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/README.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/development/testing.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/configuration.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/installation.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/quickstart.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/cli-tools.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/powertools-integration.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/slack-integration.md +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/mypy.ini +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/__init__.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/base_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/cli.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/cloudwatch_metrics.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/config.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/db_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/error_handler.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/es_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/es_query_builder.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/powertools_helpers.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/secrets_helper.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_formatter.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_setup/__init__.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_setup/channel_creator.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_setup/channel_definitions.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_setup/setup_helpers.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/timezone.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/utils.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils.egg-info/SOURCES.txt +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/pyproject.toml +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/pytest.ini +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/requirements-test.txt +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/setup.cfg +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/setup.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/__init__.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_aws_utils.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_base_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_cloudwatch_metrics.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_config.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_db_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_error_handler.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_es_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_es_query_builder.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_powertools_helpers.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_secrets_helper.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_slack_client.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_slack_formatter.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_timezone.py +0 -0
- {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nui-lambda-shared-utils
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.1
|
|
4
4
|
Summary: Enterprise-grade utilities for AWS Lambda functions with Slack, Elasticsearch, and monitoring integrations
|
|
5
5
|
Home-page: https://github.com/nuimarkets/nui-lambda-shared-utils
|
|
6
6
|
Author: NUI Markets
|
|
@@ -275,10 +275,13 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
275
275
|
except Exception:
|
|
276
276
|
return "Unknown"
|
|
277
277
|
|
|
278
|
-
def _create_lambda_header_block(self) -> List[Dict]:
|
|
278
|
+
def _create_lambda_header_block(self, event_type: Optional[str] = None) -> List[Dict]:
|
|
279
279
|
"""
|
|
280
280
|
Create Lambda context header block.
|
|
281
281
|
|
|
282
|
+
Args:
|
|
283
|
+
event_type: Optional event type label (e.g., "Scheduled", "API", "SQS")
|
|
284
|
+
|
|
282
285
|
Returns:
|
|
283
286
|
List of Slack blocks for Lambda context
|
|
284
287
|
"""
|
|
@@ -289,8 +292,10 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
289
292
|
# Use custom service name if provided, otherwise use full function name
|
|
290
293
|
display_name = self._service_name or self._lambda_context['function_name']
|
|
291
294
|
|
|
292
|
-
# Build header lines (
|
|
295
|
+
# Build header lines (line1 includes optional event type)
|
|
293
296
|
line1 = f"🤖 {display_name}"
|
|
297
|
+
if event_type:
|
|
298
|
+
line1 += f" • {event_type}"
|
|
294
299
|
line2 = f"{simple_account} ({account_id}) • {self._lambda_context['aws_region']} • 📋 Log: `{self._lambda_context['log_group']}`"
|
|
295
300
|
|
|
296
301
|
return [{
|
|
@@ -301,10 +306,13 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
301
306
|
}]
|
|
302
307
|
}]
|
|
303
308
|
|
|
304
|
-
def _create_local_header_block(self) -> List[Dict]:
|
|
309
|
+
def _create_local_header_block(self, event_type: Optional[str] = None) -> List[Dict]:
|
|
305
310
|
"""
|
|
306
311
|
Create header block for local/manual execution.
|
|
307
|
-
|
|
312
|
+
|
|
313
|
+
Args:
|
|
314
|
+
event_type: Optional event type label (e.g., "Scheduled", "API", "SQS")
|
|
315
|
+
|
|
308
316
|
Returns:
|
|
309
317
|
List of blocks for local context
|
|
310
318
|
"""
|
|
@@ -323,6 +331,8 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
323
331
|
)
|
|
324
332
|
|
|
325
333
|
line1 = f"👤 `Local Testing` • {username}"
|
|
334
|
+
if event_type:
|
|
335
|
+
line1 += f" • {event_type}"
|
|
326
336
|
line2 = f"📍 {account_name} • {self._lambda_context['aws_region']} • {timestamp}"
|
|
327
337
|
line3 = "📋 Context: Manual/Development Testing"
|
|
328
338
|
|
|
@@ -340,17 +350,19 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
340
350
|
channel: str,
|
|
341
351
|
text: str,
|
|
342
352
|
blocks: Optional[List[Dict]] = None,
|
|
343
|
-
include_lambda_header: bool = True
|
|
353
|
+
include_lambda_header: bool = True,
|
|
354
|
+
event_type: Optional[str] = None
|
|
344
355
|
) -> bool:
|
|
345
356
|
"""
|
|
346
357
|
Send message to Slack channel with standardized error handling.
|
|
347
|
-
|
|
358
|
+
|
|
348
359
|
Args:
|
|
349
360
|
channel: Channel ID
|
|
350
361
|
text: Fallback text
|
|
351
362
|
blocks: Rich formatted blocks
|
|
352
363
|
include_lambda_header: Whether to include context header
|
|
353
|
-
|
|
364
|
+
event_type: Optional event type label for header (e.g., "Scheduled", "API", "SQS")
|
|
365
|
+
|
|
354
366
|
Returns:
|
|
355
367
|
True if successful, False otherwise
|
|
356
368
|
"""
|
|
@@ -358,9 +370,9 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
358
370
|
# Add context header if requested
|
|
359
371
|
if include_lambda_header:
|
|
360
372
|
if self._lambda_context["function_name"] != "Unknown":
|
|
361
|
-
header_blocks = self._create_lambda_header_block()
|
|
373
|
+
header_blocks = self._create_lambda_header_block(event_type=event_type)
|
|
362
374
|
else:
|
|
363
|
-
header_blocks = self._create_local_header_block()
|
|
375
|
+
header_blocks = self._create_local_header_block(event_type=event_type)
|
|
364
376
|
|
|
365
377
|
if blocks:
|
|
366
378
|
blocks_with_header = header_blocks + blocks
|
|
@@ -449,18 +461,20 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
449
461
|
thread_ts: str,
|
|
450
462
|
text: str,
|
|
451
463
|
blocks: Optional[List[Dict]] = None,
|
|
452
|
-
include_lambda_header: bool = False
|
|
464
|
+
include_lambda_header: bool = False,
|
|
465
|
+
event_type: Optional[str] = None
|
|
453
466
|
) -> bool:
|
|
454
467
|
"""
|
|
455
468
|
Send thread reply with standardized error handling.
|
|
456
|
-
|
|
469
|
+
|
|
457
470
|
Args:
|
|
458
471
|
channel: Channel ID
|
|
459
472
|
thread_ts: Parent message timestamp
|
|
460
473
|
text: Reply text
|
|
461
474
|
blocks: Optional blocks
|
|
462
475
|
include_lambda_header: Whether to include header
|
|
463
|
-
|
|
476
|
+
event_type: Optional event type label for header (e.g., "Scheduled", "API", "SQS")
|
|
477
|
+
|
|
464
478
|
Returns:
|
|
465
479
|
True if successful, False otherwise
|
|
466
480
|
"""
|
|
@@ -468,7 +482,7 @@ class SlackClient(BaseClient, ServiceHealthMixin):
|
|
|
468
482
|
# Add header if requested (uncommon for thread replies)
|
|
469
483
|
blocks_with_header = blocks
|
|
470
484
|
if include_lambda_header and self._lambda_context["function_name"] != "Unknown":
|
|
471
|
-
header_blocks = self._create_lambda_header_block()
|
|
485
|
+
header_blocks = self._create_lambda_header_block(event_type=event_type)
|
|
472
486
|
if blocks:
|
|
473
487
|
blocks_with_header = header_blocks + blocks
|
|
474
488
|
else:
|
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/publish.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/installation.md
RENAMED
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/quickstart.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/slack-integration.md
RENAMED
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/config.py
RENAMED
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/db_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/es_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/timezone.py
RENAMED
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_cloudwatch_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_es_query_builder.py
RENAMED
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_powertools_helpers.py
RENAMED
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_secrets_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
{nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_slack_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|