The `getById` method in `CrudService`/`BaseService` gets an item from the DB without checking for permissions. But a few services (`Application` and `Workspace`) have overridden this method to run the query _with_ permission check. This gives the false impression that this method has a permission check for _all_ services, which is not the case. So we're renaming the base method to `getByIdWithoutPermissionCheck`, and make the overridden versions as `getById`. This should make it a lot more obvious where we're querying with permissions and where we're ignoring them, and make an informed choice of when what is needed. ## Review tips 1. The new `getById` does a permission check. The new `getByIdWithoutPermissionCheck` doesn't do a permission check. 2. Since only calls to `getById` for the application and workspace service were using permission check, we need to ensure that: 1. All calls to `getById` on application service and workspace service, are untouched. 2. All calls to `getById` on any other service are changed to `getByIdWithoutPermissionCheck`. Any remaining call to `getById` would throw a compile error since we removed it from `BaseService` anyway. EE PR at https://github.com/appsmithorg/appsmith-ee/pull/4136. /ok-to-test tags="@tag.All" <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9111401344> > Commit: 96df2feee613a0e3628f6ec9f91313c2c4b84360 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9111401344&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> |
||
|---|---|---|
| .github | ||
| app | ||
| contributions | ||
| deploy | ||
| scripts | ||
| static | ||
| utils/observability | ||
| .deepsource.toml | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .imgbotconfig | ||
| .nojekyll | ||
| app.json | ||
| appsmith_events.md | ||
| appsmith_templates.md | ||
| ci-debug.sh | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| depot.json | ||
| Dockerfile | ||
| heroku.yml | ||
| IssuesReport.md | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
Organizations build internal applications such as dashboards, database GUIs, admin panels, approval apps, customer support dashboards, and more to help their teams perform day-to-day operations. Appsmith is an open-source tool that enables the rapid development of these internal apps. Read more on our website.
Installation
There are two ways to start using Appsmith:
- Signup on Appsmith Cloud.
- Install Appsmith on your machine. See the installation guides below.
| Installation Methods | Documentation |
|---|---|
| Docker (Recommended) | |
| Kubernetes | |
| AWS AMI |
For other deployment options, see the Installation Guides documentation.
Development
To build and run Appsmith in your local dev environment, see Setup for local development.
Learning Resources
Need Help?
Contributing
We ❤️ our contributors. We're committed to fostering an open, welcoming, and safe environment in the community.
📕 We expect everyone participating in the community to abide by our Code of Conduct. Please read and follow it.
🤝 If you'd like to contribute, start by reading our Contribution Guide.
👾 Explore some good first issues.
Let's build great software together.
Top Contributors
License
Appsmith is licensed under the terms of Apache License 2.0.
