Improve deployment process and add login redirect logic

Deployment improvements:
- Add template env files (.envs.example/) for documentation
- Create init-production.sh for one-time server setup
- Create build-activepieces.sh for building/deploying AP image
- Update deploy.sh with --deploy-ap flag
- Make custom-pieces-metadata.sql idempotent
- Update DEPLOYMENT.md with comprehensive instructions

Frontend:
- Redirect logged-in business owners from root domain to tenant dashboard
- Redirect logged-in users from /login to /dashboard on their tenant
- Log out customers on wrong subdomain instead of redirecting

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-20 23:13:56 -05:00
parent 2a33e4cf57
commit f8d8419622
38 changed files with 2471 additions and 396 deletions

View File

@@ -247,6 +247,23 @@ export const appConnectionService = (log: FastifyBaseLogger) => ({
},
async delete(params: DeleteParams): Promise<void> {
// Check if connection is protected before deleting
const connection = await appConnectionsRepo().findOneBy({
id: params.id,
platformId: params.platformId,
scope: params.scope,
...(params.projectId ? { projectIds: ArrayContains([params.projectId]) } : {}),
})
if (connection?.metadata?.protected) {
throw new ActivepiecesError({
code: ErrorCode.VALIDATION,
params: {
message: 'This connection is protected and cannot be deleted. It is required for SmoothSchedule integration.',
},
})
}
await appConnectionsRepo().delete({
id: params.id,
platformId: params.platformId,