Skip to content

Sanity tests: dynamic stack setup, report context, fixes, security cleanup#502

Open
AniketDev7 wants to merge 36 commits intodevelopmentfrom
feat/dam-2.0-test-cases
Open

Sanity tests: dynamic stack setup, report context, fixes, security cleanup#502
AniketDev7 wants to merge 36 commits intodevelopmentfrom
feat/dam-2.0-test-cases

Conversation

@AniketDev7
Copy link
Contributor

@AniketDev7 AniketDev7 commented Feb 10, 2026

Updates CMA SDK sanity tests with dynamic stack setup, richer reporting, reliability fixes, and security hardening.

Changes-

  • Dynamic setup: Tests create stack, management token, and personalize project at runtime instead of existing test data
  • Report improvements: Expected vs Actual and cURL commands added to Mochawesome reports for passed and failed tests. Fallbacks added where request capture is unavailable.
  • Reliability fixes for bulk operations, branches, publish/deploy tests. ContentstackClient Returns instrumented client by default. Creates a new client when an explicit authtoken is passed (e.g. for error tests).
  • Test suite refactor: Removed obsolete tests: managementToken-test.js, deliveryToken-test.js, delete-test.js, contentType-delete-test.js, stack-share.js (replaced by token-test.js and dynamic setup).
  • Removed unused mock files (entry.js, entry.json, environment.js, etc.).
  • DAM 2.0 asset_fields query parameter test cases.

- Rewrite API tests for comprehensive SDK coverage (487 tests)
- Add 2FA/TOTP authentication test cases
- Add test utilities for request logging, assertions, and cleanup
- Implement stack cleanup using direct API calls
- Add complex mock schemas from exported CDA stack
- Add test:sanity-nocov script for Node.js v22 compatibility
- Fix test reliability with proper delays and error handling
- Remove obsolete test files and unused mock data
- Add sanity-check-backup/ to gitignore
- Add .vscode/ to gitignore
- Remove env.example.txt (credentials should be managed separately)
- Improve authentication handling for bulk job status API
- Add better error handling for branch creation
- Skip dependent tests gracefully if resource creation fails
- Increase wait time after branch creation for API propagation
- Asset, Release, and Workflow tests now fetch environment from testData
- Fallback to querying API if testData not available
- Prevents failures when environment names include timestamps
- Fix publish rules to use correct SDK method (workflow().publishRule())
- Make workflow, asset, and release tests self-contained by creating temp environments if needed
- Increase timeouts for global field and asset tests
- Preserve user-created management tokens in cleanup (only delete test-created ones)
- Improve webhook cleanup with sequential deletion and logging
- Use shorter environment names (max 10 chars)
Add comprehensive test coverage for asset_fields[] parameter in Entry API:
- Fetch with single/multiple asset_fields values
- Query with single/multiple asset_fields values
- Combined with other query params (locale, include_workflow, etc.)
- Edge case: empty asset_fields array
- All 4 supported values: user_defined_fields, embedded, ai_suggested, visual_markups

Note: Tests are disabled by default. Set DAM_2_0_ENABLED=true in .env to enable
once the AM 2.0 feature is available in the test environment.
- Dynamic stack/token setup; Expected vs Actual + cURL in Mochawesome reports
- ContentstackClient: use instrumented client by default, new client when authtoken passed
- Fix token validation assertions, audit log expected status, MEMBER_EMAIL usage
- Security: replace blt UIDs and testcs@contentstack.com with placeholders
- Update .talismanrc checksums for modified sanity test files
@AniketDev7 AniketDev7 requested a review from a team as a code owner February 10, 2026 20:47
- Refactor passed-test context: compute Expected vs Actual once and add in single place
- Prevents missing block when cURL/API Request are present (e.g. organization teams)
- Use nullish coalescing for lastRequest fields to avoid undefined in output
- Add test-curls.txt to .gitignore
- Add trackedExpect import and key success-path assertions in:
  globalfield, branch, bulkOperation, entryVariants, terms,
  ungroupedVariants, variants, contentType, branchAlias,
  taxonomy, previewToken, team, webhook, variantGroup,
  token, environment, extension, label, role
- Mochawesome report now shows specific Expected vs Actual in
  Assertions Verified for easier debugging
- Update .talismanrc checksums for modified sanity files
Unit tests (test/unit/mock/objects.js) import singlepageCT from
../../sanity-check/mock/content-type. Add content-type.js so
test:unit:report:json runs and report.json is generated in CI.
- asset-test.js: fix trailing spaces, remove unused uploadedAssetUid,
  add no-unused-expressions disables for Chai expect() (lint check)
- Add test/sanity-check/mock/customUpload.html and upload.html so
  unit tests (asset-test, concurrency-Queue-test) find expected files
  and Build & Test passes (622 passes, 0 failures)
@github-actions
Copy link

github-actions bot commented Feb 11, 2026

Coverage report for commit: db467ff
File: coverage/clover.xml

Cover ┌─────────────────────────┐ Freq.
   0% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  10% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  20% │ ██░░░░░░░░░░░░░░░░░░░░░ │  2.2%
  30% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  40% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  50% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  60% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  70% │ ██████░░░░░░░░░░░░░░░░░ │  8.7%
  80% │ ███████████████████████ │ 39.1%
  90% │ █████████████░░░░░░░░░░ │ 21.7%
 100% │ █████████████████░░░░░░ │ 28.3%
      └─────────────────────────┘
 *Legend:* █ = Current Distribution 
Summary - Lines: 82.41% | Methods: 95.88% | Branches: 65.60%
FilesLinesMethodsBranches
lib
   contentstack.js100.00%100.00%100.00%
   contentstackClient.js83.02%92.86%69.49%
   contentstackCollection.js94.12%100.00%86.96%
   entity.js76.22%100.00%61.34%
lib/core
   Util.js77.68%94.44%61.65%
   concurrency-queue.js71.84%72.22%62.02%
   contentstackError.js100.00%100.00%100.00%
   contentstackHTTPClient.js85.71%92.31%80.00%
   errorMessages.js100.00%100.00%71.43%
   oauthHandler.js90.85%100.00%67.14%
   pkceStorage.js100.00%100.00%94.12%
lib/organization
   index.js72.73%100.00%48.68%
lib/organization/teams
   index.js89.47%100.00%61.11%
lib/organization/teams/stackRoleMappings
   index.js78.57%100.00%47.50%
lib/organization/teams/teamUsers
   index.js100.00%100.00%87.50%
lib/query
   index.js73.91%100.00%56.25%
lib/stack/asset/folders
   index.js100.00%100.00%94.44%
lib/stack/asset
   index.js86.42%100.00%72.34%
lib/stack/auditlog
   index.js91.67%100.00%69.70%
lib/stack/branch
   compare.js68.18%100.00%56.67%
   index.js94.87%100.00%77.78%
   mergeQueue.js83.33%100.00%57.89%
lib/stack/branchAlias
   index.js79.31%100.00%58.54%
lib/stack/contentType/entry
   index.js83.04%100.00%57.43%
lib/stack/contentType/entry/variants
   index.js79.31%100.00%58.97%
lib/stack/contentType
   index.js84.85%100.00%67.57%
lib/stack/deliveryToken
   index.js95.24%80.00%85.00%
lib/stack/deliveryToken/previewToken
   index.js21.43%25.00%7.14%
lib/stack/environment
   index.js100.00%100.00%94.74%
lib/stack/extension
   index.js93.88%100.00%80.95%
lib/stack/globalField
   index.js91.67%100.00%80.77%
lib/stack
   index.js80.66%92.86%67.74%
lib/stack/label
   index.js100.00%100.00%93.33%
lib/stack/locale
   index.js100.00%100.00%94.74%
lib/stack/managementToken
   index.js100.00%100.00%89.47%
lib/stack/release
   index.js80.00%100.00%58.33%
lib/stack/roles
   index.js100.00%100.00%94.12%
lib/stack/taxonomy
   index.js80.60%100.00%54.76%
lib/stack/taxonomy/terms
   index.js78.57%100.00%56.41%
lib/stack/variantGroup
   index.js81.58%100.00%57.14%
lib/stack/variantGroup/variants
   index.js77.50%100.00%52.00%
lib/stack/variants
   index.js76.32%100.00%50.00%
lib/stack/webhook
   index.js84.48%100.00%63.64%
lib/stack/workflow
   index.js83.64%100.00%66.10%
lib/stack/workflow/publishRules
   index.js100.00%100.00%94.74%
lib/user
   index.js91.43%100.00%73.08%

🤖 comment via lucassabreu/comment-coverage-clover

- branch-test: remove unused mock imports and createdBranch; fix trailing spaces, padded-blocks
- auditlog-test: remove unused testData; fix trailing spaces, padded-blocks, no-unused-expressions
- Remove unused shortId import
- Fix trailing spaces, padded-blocks (via eslint --fix)
- Add no-unused-expressions disables for Chai expect()
Chai expect() triggers no-unused-expressions in Standard. Override for
test/**/*.js so test files don't need eslint-disable on every expect().
- Remove unused testData import
- Fix trailing spaces, prefer-const (jobIds) via eslint --fix
- Update .talismanrc checksum for bulkOperation-test.js
- Add trackedExpect to sanity API tests for Mochawesome expected/actual reporting
- Fix no-unused-vars, no-undef across sanity-check API tests and helpers
- Remove unused imports and variables (contentType, entry, role, workflow, etc.)
- Fix no-return-await in role-test; add after/before to stack-test and team-test
- ESLint: no-useless-escape off for test/**; promise/param-names fix in testSetup
- Remove unused formatValueCompact and headersToCurl from testHelpers; sanity.js import cleanup
- Update .talismanrc checksums for modified sanity test files
- environment-test: use separate temp env for 'update name' test so shared
  development env is never renamed; bulk/entry/release/workflow keep using
  testData.environments.development
- bulkOperation-test: use testData.environments.development.name (envName)
  instead of hardcoded 'development' for all publish/unpublish payloads
- .talismanrc: update checksums for modified test files and merge artifacts
- No sensitive data: only process.env.API_KEY and env var references
@AniketDev7 AniketDev7 requested a review from a team as a code owner March 11, 2026 11:07
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

…improve logging. Adjusted maxAttempts for waitForJobReady function from 10 to 15 and modified delay from 2000ms to 5000ms. Updated test cases to reflect these changes and ensure consistency in job status checks. Updated checksum in .talismanrc for bulkOperation-test.js.
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

harshithad0703
harshithad0703 previously approved these changes Mar 12, 2026
@AniketDev7 AniketDev7 dismissed harshithad0703’s stale review March 12, 2026 05:05

The merge-base changed after approval.

harshithad0703
harshithad0703 previously approved these changes Mar 12, 2026
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

1 similar comment
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@AniketDev7 AniketDev7 force-pushed the feat/dam-2.0-test-cases branch from 9cd59a3 to 67bc5d5 Compare March 12, 2026 13:15
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

@AniketDev7 AniketDev7 removed the request for review from nadeem-cs March 12, 2026 13:16
@AniketDev7 AniketDev7 force-pushed the feat/dam-2.0-test-cases branch from 67bc5d5 to e56f4c2 Compare March 12, 2026 13:39
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

…ob timeouts

- OAuth: Compute Developer Hub URL from HOST env variable in test code
  - Handles environment-specific URL transformations without SDK changes
  - All OAuth tests have 15s timeout for network calls
  - Refactored to reuse global authtoken (avoids token limit)
- Asset: Conditional description assertion for API version compatibility
- BulkOperation: Add 90s timeout to 13 job status tests (waitForJobReady takes ~75s max)
@AniketDev7 AniketDev7 force-pushed the feat/dam-2.0-test-cases branch from e56f4c2 to 33db55b Compare March 12, 2026 13:42
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

- Reduced maxAttempts from 15 to 8
- Reduced delay from 5s to 3s
- Total max polling time: 24s (was 75s)
- Test timeout: 30s (was 90s)
- Faster test execution now that bulk job route is fixed
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

1 similar comment
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

- Max polling attempts: 5 (reduced from 15)
- Delay between polls: 5s (increased from 3s)
- Initial wait: 15s (kept unchanged)
- Test timeout: 30s (reduced from 90s)
- Max polling time: 25s (5 attempts × 5s)
- Total max time per test: ~40s
@AniketDev7 AniketDev7 force-pushed the feat/dam-2.0-test-cases branch from 6219718 to 63a0140 Compare March 12, 2026 14:39
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

OAuth Changes:
- Revert to separate login for OAuth tests (creates authtoken #2)
- Maintains proper business logic separation between basic auth and OAuth flow
- Total: 2 authtokens (both reused, no token limit issue)

Bulk Operation Changes:
- Expose 401/403 authentication errors immediately (don't retry)
- Previously: silently caught ALL errors, hiding auth failures
- Now: fail fast on auth errors, retry only on network/5xx errors
- Increased polling: 5→10 attempts (50s max), 60s timeout
- Result: tests will show real error instead of generic timeout

This fixes the 401 errors visible in pipeline console that were being masked.
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

Fix 401 Unauthorized errors in bulk operation tests by using the
dynamically created stack's API key from testSetup.testContext
instead of process.env.API_KEY.

The helper functions (doBulkOperation, doBulkOperationWithManagementToken,
makeManagementToken) were using process.env.API_KEY which wasn't set at
the time of execution, causing authentication failures on both dev9 and
dev11 environments.

Changes:
- Updated helper functions to use testSetup.testContext.stackApiKey
- Ensures correct API key is used for all bulk operations
- Fixes job status check failures and other bulk operation 401 errors
- Updated .talismanrc checksum for bulkOperation-test.js
@github-actions
Copy link

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 0 0 25 ✅ Passed
🟡 Medium Severity 0 0 500 ✅ Passed
🔵 Low Severity 0 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

✅ BUILD PASSED - All security checks passed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants