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.
Files changed (60) hide show
  1. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/PKG-INFO +1 -1
  2. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_client.py +27 -13
  3. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.editorconfig +0 -0
  4. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/ci.yml +0 -0
  5. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/publish.yml +0 -0
  6. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.github/workflows/test.yml +0 -0
  7. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/.markdownlint-cli2.yaml +0 -0
  8. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/CLAUDE.md +0 -0
  9. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/CONTRIBUTING.md +0 -0
  10. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/LICENSE +0 -0
  11. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/MANIFEST.in +0 -0
  12. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/README.md +0 -0
  13. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/README.md +0 -0
  14. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/development/testing.md +0 -0
  15. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/configuration.md +0 -0
  16. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/installation.md +0 -0
  17. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/getting-started/quickstart.md +0 -0
  18. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/cli-tools.md +0 -0
  19. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/powertools-integration.md +0 -0
  20. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/docs/guides/slack-integration.md +0 -0
  21. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/mypy.ini +0 -0
  22. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/__init__.py +0 -0
  23. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/base_client.py +0 -0
  24. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/cli.py +0 -0
  25. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/cloudwatch_metrics.py +0 -0
  26. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/config.py +0 -0
  27. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/db_client.py +0 -0
  28. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/error_handler.py +0 -0
  29. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/es_client.py +0 -0
  30. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/es_query_builder.py +0 -0
  31. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/powertools_helpers.py +0 -0
  32. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/secrets_helper.py +0 -0
  33. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_formatter.py +0 -0
  34. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/slack_setup/__init__.py +0 -0
  35. {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
  36. {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
  37. {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
  38. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/timezone.py +0 -0
  39. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils/utils.py +0 -0
  40. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/nui_lambda_shared_utils.egg-info/SOURCES.txt +0 -0
  41. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/pyproject.toml +0 -0
  42. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/pytest.ini +0 -0
  43. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/requirements-test.txt +0 -0
  44. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/setup.cfg +0 -0
  45. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/setup.py +0 -0
  46. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/__init__.py +0 -0
  47. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_aws_utils.py +0 -0
  48. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_base_client.py +0 -0
  49. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_cloudwatch_metrics.py +0 -0
  50. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_config.py +0 -0
  51. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_db_client.py +0 -0
  52. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_error_handler.py +0 -0
  53. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_es_client.py +0 -0
  54. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_es_query_builder.py +0 -0
  55. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_powertools_helpers.py +0 -0
  56. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_secrets_helper.py +0 -0
  57. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_slack_client.py +0 -0
  58. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_slack_formatter.py +0 -0
  59. {nui_lambda_shared_utils-1.1.0 → nui_lambda_shared_utils-1.1.1}/tests/test_timezone.py +0 -0
  60. {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.0
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 (2 lines total)
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: