* `silo` refactoring changes (#2304) * add sdk and services for workspace connection and import jobs * rename service * move worker folder to root + remove controller folder * remove controller folder * add external api service in silo * fix params in service * fix params in service * fix services + remove projectid in job endpoints * chore: added generic config types for job store (#2158) * chore: made import job as generic * chore: added generic parameter inside the job service * chore: added generic parameter inside the job service * feat: remove projectId from jobs endpoint * chore: modified job store for new services * chore: revert go.mod.sum * chore: spaces * gitlab auth callback * github controllers update with plane api * create api client fix * base integration importer store * remove junk store * silo external api token middleware + plane api to generate user tokens * add ahmac permission method in apiserver + ahmac sign flow on silo * remove junk * getapi client remove unwanted options * modify api route for silo access + github gitlab and slack controller clean up * types modify + jira importer cleanup * fix: nodemon setup * make getAPIClient as a singleton * chore: added new definitions in base-import-worker * chore: modified jira migrator to adhere to the modified types * feat: modified base migrator to adhere new types * chore: modified jira-server-migrator to adhere new changes * chore: modified asana importer to adhere to new types * fix: migrated importer controllers for new schema * fix: build * chore: asana and linear controller * feat: updated job controller for new schema changes * chore: added permissions * integrations api migrations changes (#2193) * chore: added workspace_slug inside job data * replaced ahmac with hmac implementation * add new service base api view for microservices * fix: apiserver changes and base view * feat: added changes to services * feat: modified engine controller for using api services * feat: modified UI stores for modified jira importer * remove-log * resolve hmac issue + silo endpoint url fixes * add silo target access token rotation in get * integration ui migration changes * revert changes in il8n * fix crud for api * fix crud for api * fix: batch lock config * fix silo bundler issue (#2233) * chore: combined common dashboard components for silo (#2166) * chore: added new types to job store * feat: updated job store dependencies for new params * feat: created common components for importers dashboard * feat: modified jira importer to comply with new common components * feat: modified jira server dashboard to comply with the new component changes * feat: modified asana to comply with the common dashboard changes * fix: linear to comply with the new changes * reset job store * feat: migrated importers to new schema * fix: removed unused code * fix: base job importer model and serializer * fix-lint-errors --------- Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com> * fix api serialisers * fix: stabilized all integrations and jira importer * fix: linear, asana and jira-server importers * fix: reinstantiated hmac permission * chore: removed the db folder for silo * feat: added types for integration config * feat: added check for supported integration in silo and web * feat: added self hosted and cloud message differences * add en translations for importers and jira importer (#2264) * feat: Added language support for integrations (#2277) * feat: added translations for github, slack and gitlab integrations * fix: slack integration project modal * fix: gitlab organization disconnect * fix: silo build fixes * feat: added more language to integration language support * fix: review * feat: modified caddy and compose for silo selfhosted changes (#2276) * silo - fixes for keys and integrations form reset (#2283) * fix hardcoded values for integration importer keys * reset state after integration form submit * fix missing key integration * fix gitlab connection update * fix: added slack images being updated while creating issues (#2288) Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com> * silo - fix integration lang support (#2291) * fix hardcoded values for integration importer keys * reset state after integration form submit * fix missing translation key integration * fix gitlab connection update * fix integration lang support * fix integration lang support --------- Co-authored-by: Saurabhkmr98 <saurabhkapur73@gmail.com> Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com> * [SILO-71] flatfile importer v1 (#2156) * feat: initialized CSV importer * feat: added flatfile components * feat: setup workbook and listener for csv importer * feat: added store structure for flatfile importer * chore: translated csv importer to flatfile importer * feat: setup listener * fix: event listener for creating agent * feat: added flatfile importer skeleton * feat: added flatfile etl logic for pulling and transforming data * feat: added flatfile controller and migrator * feat: curated flatfile root store and importer UI * feat: initialized flatfile migrator * fix: flatfile * feat: added transformers for cycles and issues * feat: added mapping and transformation for flatfile * feat: added assignee field for fixing migrator bugs * fix:build * feat: added metrics inside the data import task' * fix:workbook * feat: added validation of email and date for flatfile * add sdk and services for workspace connection and import jobs * rename service * move worker folder to root + remove controller folder * remove controller folder * feat: added modules and issue types inside flatfile * fix: build * fix:response-handler * fix:errors * fix:deleted-file * fix: readded jobs route * add external api service in silo * fix params in service * fix params in service * fix services + remove projectid in job endpoints * chore: added generic config types for job store (#2158) * chore: made import job as generic * chore: added generic parameter inside the job service * chore: added generic parameter inside the job service * feat: remove projectId from jobs endpoint * chore: modified job store for new services * chore: revert go.mod.sum * chore: spaces * gitlab auth callback * github controllers update with plane api * create api client fix * base integration importer store * remove junk store * silo external api token middleware + plane api to generate user tokens * add ahmac permission method in apiserver + ahmac sign flow on silo * remove junk * getapi client remove unwanted options * modify api route for silo access + github gitlab and slack controller clean up * types modify + jira importer cleanup * fix: nodemon setup * make getAPIClient as a singleton * chore: added new definitions in base-import-worker * chore: modified jira migrator to adhere to the modified types * feat: modified base migrator to adhere new types * chore: modified jira-server-migrator to adhere new changes * chore: modified asana importer to adhere to new types * fix: migrated importer controllers for new schema * fix: build * chore: asana and linear controller * feat: updated job controller for new schema changes * chore: added permissions * integrations api migrations changes (#2193) * chore: added workspace_slug inside job data * replaced ahmac with hmac implementation * add new service base api view for microservices * fix: apiserver changes and base view * feat: added changes to services * feat: modified engine controller for using api services * feat: modified UI stores for modified jira importer * remove-log * resolve hmac issue + silo endpoint url fixes * add silo target access token rotation in get * integration ui migration changes * revert changes in il8n * fix crud for api * fix crud for api * fix: batch lock config * fix silo bundler issue (#2233) * chore: combined common dashboard components for silo (#2166) * chore: added new types to job store * feat: updated job store dependencies for new params * feat: created common components for importers dashboard * feat: modified jira importer to comply with new common components * feat: modified jira server dashboard to comply with the new component changes * feat: modified asana to comply with the common dashboard changes * fix: linear to comply with the new changes * reset job store * feat: migrated importers to new schema * fix: removed unused code * fix: base job importer model and serializer * fix-lint-errors --------- Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com> * fix api serialisers * fix: stabilized all integrations and jira importer * fix: linear, asana and jira-server importers * fix: reinstantiated hmac permission * chore: removed the db folder for silo * feat: added types for integration config * feat: added check for supported integration in silo and web * feat: added self hosted and cloud message differences * add en translations for importers and jira importer (#2264) * feat: Added language support for integrations (#2277) * feat: added translations for github, slack and gitlab integrations * fix: slack integration project modal * fix: gitlab organization disconnect * fix: silo build fixes * feat: added more language to integration language support * fix: review * feat: modified caddy and compose for silo selfhosted changes (#2276) * silo - fixes for keys and integrations form reset (#2283) * fix hardcoded values for integration importer keys * reset state after integration form submit * fix missing key integration * fix gitlab connection update * fix: added slack images being updated while creating issues (#2288) Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com> * silo - fix integration lang support (#2291) * fix hardcoded values for integration importer keys * reset state after integration form submit * fix missing translation key integration * fix gitlab connection update * fix integration lang support * fix integration lang support * feat: added controllers as default exports * feat: modified flatfile worker and controller to adhere new changes * feat: modified flatfile importer to ahere silo api migration * fix: source project and workspace hide props --------- Co-authored-by: Saurabhkmr98 <saurabhkapur73@gmail.com> Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com> * add fuzzy find in state and priority mapping (#2310) Co-authored-by: Saurabhkmr98 <saurabhkapur73@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> * fix: build * chore: moved flatfile agent to external * chore:build-fixes * fix: credential breaking for slack * fix: credential route for api * SILO - chore: Importers translation (#2352) * add en translations for importers and jira importer * add en translations for all the importers * add importers language translation changes * chore silo importer translation * chore silo importer translation * fix: env removing trailing slashes * fix: trailing slashed env * fix duplicate entity connection issue (#2362) --------- Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
Plane
Open-source project management that unlocks customer value
Website • Releases • Twitter • Documentation
Meet Plane, an open-source project management tool to track issues, run sprints cycles, and manage product roadmaps without the chaos of managing the tool itself. 🧘♀️
Plane is evolving every day. Your suggestions, ideas, and reported bugs help us immensely. Do not hesitate to join in the conversation on Discord or raise a GitHub issue. We read everything and respond to most.
🚀 Installation
Getting started with Plane is simple. Choose the setup that works best for you:
-
Plane Cloud
Sign up for a free account on Plane Cloud—it's the fastest way to get up and running without worrying about infrastructure. -
Self-host Plane
Prefer full control over your data and infrastructure? Install and run Plane on your own servers. Follow our detailed deployment guides to get started.
| Installation methods | Docs link |
|---|---|
| Docker | |
| Kubernetes |
Instance admins can configure instance settings with God mode.
🌟 Features
-
Issues
Efficiently create and manage tasks with a robust rich text editor that supports file uploads. Enhance organization and tracking by adding sub-properties and referencing related issues. -
Cycles
Maintain your team’s momentum with Cycles. Track progress effortlessly using burn-down charts and other insightful tools. -
Modules
Simplify complex projects by dividing them into smaller, manageable modules. -
Views
Customize your workflow by creating filters to display only the most relevant issues. Save and share these views with ease. -
Pages
Capture and organize ideas using Plane Pages, complete with AI capabilities and a rich text editor. Format text, insert images, add hyperlinks, or convert your notes into actionable items. -
Analytics
Access real-time insights across all your Plane data. Visualize trends, remove blockers, and keep your projects moving forward. -
Drive (coming soon): The drive helps you share documents, images, videos, or any other files that make sense to you or your team and align on the problem/solution.
🛠️ Local development
Pre-requisites
- Ensure Docker Engine is installed and running.
Development setup
Setting up your local environment is simple and straightforward. Follow these steps to get started:
-
Clone the repository:
git clone https://github.com/makeplane/plane.git -
Navigate to the project folder:
cd plane -
Create a new branch for your feature or fix:
git checkout -b <feature-branch-name> -
Run the setup script in the terminal:
./setup.sh -
Open the project in an IDE such as VS Code.
-
Review the
.envfiles in the relevant folders. Refer to Environment Setup for details on the environment variables used. -
Start the services using Docker:
docker compose -f docker-compose-local.yml up -d
That’s it! You’re all set to begin coding. Remember to refresh your browser if changes don’t auto-reload. Happy contributing! 🎉
⚙️ Built with
📸 Screenshots
📝 Documentation
Explore Plane's product documentation and developer documentation to learn about features, setup, and usage.
❤️ Community
Join the Plane community on GitHub Discussions and our Discord server. We follow a Code of conduct in all our community channels.
Feel free to ask questions, report bugs, participate in discussions, share ideas, request features, or showcase your projects. We’d love to hear from you!
🛡️ Security
If you discover a security vulnerability in Plane, please report it responsibly instead of opening a public issue. We take all legitimate reports seriously and will investigate them promptly. See Security policy for more info.
To disclose any security issues, please email us at security@plane.so.
🤝 Contributing
There are many ways you can contribute to Plane:
- Report bugs or submit feature requests.
- Review the documentation and submit pull requests to improve it—whether it's fixing typos or adding new content.
- Talk or write about Plane or any other ecosystem integration and let us know!
- Show your support by upvoting popular feature requests.
Please read CONTRIBUTING.md for details on the process for submitting pull requests to us.
Repo activity
We couldn't have done this without you.
License
This project is licensed under the GNU Affero General Public License v3.0.