Commit Graph

420 Commits

Author SHA1 Message Date
Maxime Beauchemin
fe642274f6 fix: only block synchronize events for unauthorized users
Previously the logic was backwards - it was blocking synchronize events
for AUTHORIZED maintainers and allowing them for unauthorized users.

Now:
- Authorized maintainers (write/admin) can push commits → automatic updates
- Unauthorized users pushing to PRs with showtime environments → blocked

This allows trusted maintainers like @mistercrunch to push changes and
get automatic showtime environment updates without manual re-triggering.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-03 14:16:48 -07:00
Maxime Beauchemin
f9d157017e feat: Add audit logging for maintainer deploy triggers
Implements @dpgaspar's suggestion from PR #34833 to add audit trail
when maintainers trigger Showtime deployments. The workflow now logs
which maintainer triggered the deploy and for which PR number.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 22:14:25 -07:00
Maxime Beauchemin
1bae0569ca fix: Remove unsupported pattern property from workflow_dispatch input
GitHub Actions workflow_dispatch inputs don't support the 'pattern'
property for input validation. Removed to fix workflow validation errors.

SHA validation will be handled by the showtime CLI instead.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-26 13:44:05 -07:00
Maxime Beauchemin
7fbea466c9 feat: Add comprehensive security controls to showtime-trigger workflow
- Add maintainer authorization check to prevent unauthorized workflow execution
- Validate SHA input format to prevent injection attacks
- Add 90-minute timeout protection against runaway jobs
- Implement automatic blocking for PR synchronize events when Showtime is active
- Add unlabeled trigger support for proper label removal handling
- Preserve local customizations (install-docker-compose: false, upgrade flag)

Security improvements protect against arbitrary code execution while maintaining
workflow_dispatch convenience for authorized maintainers.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-26 10:30:37 -07:00
Maxime Beauchemin
2665c52c21 cleanup: Remove one-time push trigger from showtime-cleanup workflow
The push trigger was only needed for initial workflow registration.
Now that it exists, revert to schedule-only triggers.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:39:29 -07:00
Maxime Beauchemin
05bddd6bc3 fix: Remove invalid pattern properties from showtime workflows
- Remove unsupported `pattern` property from workflow_dispatch inputs
- Add one-time push trigger to showtime-cleanup.yml for workflow registration
- Runtime validation still handled in bash steps

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:38:05 -07:00
Maxime Beauchemin
f9b4665525 --upgrade 2025-08-25 13:23:22 -07:00
Maxime Beauchemin
0c9f60635c showtime version 2025-08-25 13:23:22 -07:00
Maxime Beauchemin
60c3b2971d fix: Checkout repository before using local actions
Move checkout step before setup-docker to fix 'Can't find action.yml' error. Local actions require the repository to be checked out first.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
6fe0655e72 feat: Import updated showtime workflows from development session
Replace workflows with improved versions that properly handle showtime CLI output format and fix conditional step execution. Key fixes:
- Match sync_needed output from showtime CLI
- Use target_sha for proper SHA handling
- Remove invalid pattern properties
- Cleaner workflow structure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
d310dfdc79 fix: Match workflow conditions with actual showtime CLI output
Update output extraction to use 'sync_needed' and 'target_sha' to match what showtime CLI actually returns. This fixes the issue where sync steps were skipped despite sync_needed=true.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
e394f98687 perf: Skip Docker Compose installation in showtime workflow
Add install-docker-compose: false to setup-docker action since showtime workflows don't need Docker Compose. This saves 1-2 minutes by skipping unnecessary apt operations.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
180d5b70ce fix: Fetch PR SHA via GitHub API for workflow_dispatch
For manual workflow_dispatch with PR number, fetch the latest SHA for that specific PR via GitHub API instead of using the current branch SHA. This ensures we build and deploy the actual PR code, not the workflow branch code.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
6ca977ddd5 fix: Use github.sha fallback for workflow_dispatch SHA resolution
When no SHA is provided in workflow_dispatch and there's no PR context, fallback to github.sha (current commit). This fixes the 'No SHA available' error for manual triggers.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
e2a9e28313 perf: Optimize workflow step order for efficiency
Reorder steps to check what's needed first, then only set up Docker environment if build is actually required. This avoids expensive Docker setup when only label changes occur.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
390da591b1 fix: Add SHA handling for push events in showtime workflow
Use github.sha for push events since they don't have pull_request context. This fixes the 'No SHA available' error when the workflow runs on push.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
acf7b61200 perf: Use shallow clone for faster checkout in showtime workflow
Add fetch-depth: 1 to speed up repository checkout when accessing local actions. Only the latest commit is needed for workflow execution.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
e19841fc46 fix: Add checkout step before using local actions
The workflow needs to checkout the repository before using local actions like setup-docker. This resolves the 'Can't find action.yml' error.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
71497054a8 showtime version 2025-08-25 13:23:22 -07:00
Maxime Beauchemin
9fd5815803 fix: Remove pattern property from workflow_dispatch SHA input
GitHub Actions workflow_dispatch inputs don't support the pattern property. SHA validation is now handled in the workflow logic instead.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
fefc2023a9 fix: Handle push events in showtime-trigger workflow
Skip push events in the workflow logic since they're only used for workflow registration. This prevents errors when the workflow runs on push but has no PR context.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
9f246ba559 fix: Remove invalid pattern property from showtime-cleanup.yml workflow_dispatch input
The pattern property is not supported in workflow_dispatch inputs, causing GitHub Actions validation to fail. Input validation is now handled in the workflow logic instead.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
91d0cc5805 feat: Integrate Superset Showtime GitHub Actions workflows
Replaces legacy ephemeral environment system with the new Superset Showtime tool (https://github.com/mistercrunch/superset-showtime), providing automated PR environment management using Docker containers deployed to AWS ECS.

## Key Changes

### New Showtime Workflows
- `showtime-trigger.yml`: Handles all PR events (labeled, synchronize, closed) with intelligent build detection
- `showtime-cleanup.yml`: Scheduled cleanup every 6 hours with manual trigger support

### Legacy Workflow Deprecation
- Added deprecation notices to `ephemeral-env.yml` and `ephemeral-env-pr-close.yml`
- Clear migration guidance from "testenv-up" to "🎪 trigger-start" labels
- Both systems coexist during transition period

### Architecture Improvements
- **Simplified Logic**: GitHub Actions just triggers, showtime CLI handles all decisions
- **Smart Building**: Only builds Docker images when code changes, not label changes
- **DuckDB Support**: Configured with `LOAD_EXAMPLES_DUCKDB=true` build arg
- **Environment Variables**: Requires `SUPERSET__SQLALCHEMY_EXAMPLES_URI` in ECS (showtime CLI responsibility)

## Testing

Simple 3-step test on PR 34831:
1. Set label: `gh pr edit 34831 --add-label "🎪 trigger-start"`
2. Run command: `gh workflow run showtime-trigger.yml --ref showtime_gha --field pr_number=34831`
3. Expected outcome: Environment accessible with DuckDB examples

## Benefits
- **Reliability**: Dedicated Python package vs complex YAML logic
- **Maintainability**: All environment logic centralized in showtime CLI
- **Efficiency**: Conditional builds and smart resource management
- **Testability**: Manual workflow_dispatch for development and debugging

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 13:23:22 -07:00
Maxime Beauchemin
47414e18d4 feat: Use DuckDB for examples data in Docker development environment (#34831)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2025-08-25 12:37:28 -07:00
Michael S. Molina
a8be5a5a0c chore: Extensions architecture POC (#31934)
Co-authored-by: Ville Brofeldt <ville.brofeldt@apple.com>
Co-authored-by: Ville Brofeldt <ville@Villes-MacBook-Pro-2024.local>
Co-authored-by: Ville Brofeldt <v_brofeldt@apple.com>
2025-08-22 21:25:52 -03:00
dependabot[bot]
9300652277 chore(deps): bump actions/first-interaction from 1 to 2 (#34459)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 14:02:25 -07:00
Beto Dealmeida
8df5860826 chore: bump sqlglot to latest version (27.3.0) (#34302) 2025-07-24 15:38:29 -07:00
Maxime Beauchemin
a0a49f9300 feat: add Claude Code GitHub Action integration (#34231) 2025-07-21 09:14:45 -07:00
Maxime Beauchemin
73dfe57ae2 fix: make flask-cors a core dependency (#34115) 2025-07-09 14:54:39 -07:00
dependabot[bot]
c31daf8c92 chore(deps): bump actions/cache from 3 to 4 (#33999)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 09:14:28 -07:00
Đỗ Trọng Hải
f6f9582186 fix(docs|build): revert docker-compose files rename (#33883) 2025-06-24 22:49:58 +07:00
Maxime Beauchemin
dd129fa403 feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor (#31590)
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com>
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
Co-authored-by: Alexandru Soare <37236580+alexandrusoare@users.noreply.github.com>
Co-authored-by: Damian Pendrak <dpendrak@gmail.com>
Co-authored-by: Pius Iniobong <67148161+payose@users.noreply.github.com>
Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com>
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
2025-06-20 13:38:58 -07:00
Vladislav Polyakov
a23a4ed054 refactor: rename docker-compose files and update references (#33790)
Signed-off-by: Vladislav Polyakov <polRk@ydb.tech>
2025-06-20 12:00:34 -07:00
Beto Dealmeida
edc60914f6 chore: 100% test coverage for SQL parsing (#33568) 2025-06-04 22:18:09 -04:00
Pat Buxton
2d26af25c1 feat: Python 3.12 support (#33434) 2025-06-02 10:00:37 -07:00
Urban Pettersson
1409b1a25b fix: correct typos (#33586)
Co-authored-by: Urban Pettersson <urban.pettersson@alteryx.com>
2025-05-27 08:24:17 -07:00
Evan Rusackas
39b3de6b5d fix(CI): adding explicit allowable licenses for python dependencies (#33521) 2025-05-19 15:54:01 -06:00
Hamir Mahal
aea776a131 fix: Unexpected input(s) 'depth' CI warnings (#33254) 2025-04-28 11:07:13 -06:00
Maxime Beauchemin
c1eeb63d89 fix: master builds are failing while trying to push report to cypress (#33124) 2025-04-14 10:53:02 -07:00
Beto Dealmeida
7ab8534ef6 feat: dataset folders (backend) (#32520)
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2025-04-11 11:38:08 -07:00
Martyn Gigg
09b92e7d08 feat: Allow superset to be deployed under a prefixed URL (#30134)
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
2025-04-09 13:43:44 -07:00
Maxime Beauchemin
664047f3fb chore: fix precommit for eslint (#32596) 2025-03-12 11:26:36 -07:00
Maxime Beauchemin
4fdeab8dad docs: fix typo in ephemeral envs docs (#32605) 2025-03-11 16:17:30 -07:00
Maxime Beauchemin
9ea58381f4 docs: add information about ephemeral environments (#32600) 2025-03-11 15:26:54 -07:00
RealGreenDragon
85d51f5c9a chore: bump postgresql from 15 to 16 (#32597) 2025-03-11 15:26:26 -07:00
Ville Brofeldt
82595df6f9 chore(ci): use npm/yarn lock files where possible (#32527) 2025-03-06 06:47:48 -08:00
Ville Brofeldt
c1abe1ec44 chore(ci): show more failed pre-commit context (#32517) 2025-03-05 11:39:07 -08:00
Daniel Vaz Gaspar
167dacc2e4 fix: ephemeral CI fetching task ENI (#32377) 2025-02-25 15:51:49 +00:00
Evan Rusackas
90651dfe3e fix(dev/ci): pre-commit fixes galore (#32352) 2025-02-24 11:26:45 -07:00
alveifbklsiu259
e422e3c620 feat(type-checking): Add type-checking pre-commit hooks (#32261) 2025-02-19 15:12:17 -08:00