diff --git a/docs/cloud/getting-started.mdx b/docs/cloud/getting-started.mdx new file mode 100644 index 00000000..a58c84e5 --- /dev/null +++ b/docs/cloud/getting-started.mdx @@ -0,0 +1,24 @@ +--- +title: "Getting Started" +description: "This page guides you through setting up your Oauth, integration account and managing syncs." +--- + +## Set up your Poozle Cloud account + +We're currently in private beta for cloud. if you early access reachout to us at manik@poozle.dev. Once you get credentials please follow next steps + +## Connect your APIs + + + + Login to Dashboard + + + Link third-party platforms of end users to Poozle.{" "} + + + diff --git a/docs/guides/create_integration_account.mdx b/docs/connect-integrations/api-key.mdx similarity index 51% rename from docs/guides/create_integration_account.mdx rename to docs/connect-integrations/api-key.mdx index 6a4def42..e1644940 100644 --- a/docs/guides/create_integration_account.mdx +++ b/docs/connect-integrations/api-key.mdx @@ -1,10 +1,20 @@ --- -title: "Create Account" +title: "API Key" +description: "Integration Accounts establish connections for end users. API Key method enables links the app and third-party platforms." --- -Integration Accounts represent your end users’ connections between your app and third-party platforms. - -## Create a New Integration Account with Poozle UI + + {" "} + For a more automated approach, consider establishing these connections using our + [Create API](/api-reference/integration_account/create_integration_account){" "} + + + + {" "} + For seamless integration, we recommend using the OAuth approach if third party + api providers supports it. If not or you don't have an OAuth app, you can utilize + the API Key method.{" "} + 1. On the Integrations tab, Click on `+ New Integration Account`: diff --git a/docs/connect-integrations/login.mdx b/docs/connect-integrations/login.mdx new file mode 100644 index 00000000..05b34fda --- /dev/null +++ b/docs/connect-integrations/login.mdx @@ -0,0 +1,8 @@ +--- +title: "Login to Dashboard" +description: "Login with your credentials in app.poozle.dev. Once logged in, you will see this dashboard." +--- + + + + diff --git a/docs/connect-integrations/oauth.mdx b/docs/connect-integrations/oauth.mdx new file mode 100644 index 00000000..2f936a67 --- /dev/null +++ b/docs/connect-integrations/oauth.mdx @@ -0,0 +1,64 @@ +--- +title: "OAuth" +description: "Integration Accounts signify end-user connections. OAuth method facilitates links the app and third-party platforms." +--- + + + {" "} + For a more automated approach, consider creating OAuth apps using our [Create API](/api-reference/oauth/create_oauth){" "} + + +Adding a custom OAuth app requires registration of the application with the API provider to obtain the Client ID and Client Secret. Don't forget to register required scopes with both the API provider and on the OAuth page. + +### Create a New OAuth Account + +1. On the OAuth tab, Click on `+ New OAuth App`: + + + + + +2. Choose the integration you want to connect and provide the necessary information. + + + + + +3. Enter the client_id, client_secret and scopes according to the integration. Once done you can click on create. + +4. Once the OAuth is created it will show in the OAuth page. You can now access repective OAuth in the link page. + +### Callback URL + +Please add this Callback URL respectively in the respective OAuth app +Cloud + +``` +https://app.poozle.dev/api/v1/oauth/callback +``` + +Self Hosted + +``` +https://{sub_domain}/api/v1/oauth/callback +``` + +## Link + +Link is a URL used by end users to establish a connection between the app and third-party platforms + +### Create a New Integration Account with Link + +1. On the Links tab, Click on `+ New Link`: + + + + + +2. Provide the necessary information and click on Create. Once done you can copy the link URL + + + + + +3. You can use the copied URL to connect accounts. You may also incorporate a button in your user interface, redirecting users to this URL for connecting with third-party apps. diff --git a/docs/guides/authentication.mdx b/docs/guides/basics/authentication.mdx similarity index 85% rename from docs/guides/authentication.mdx rename to docs/guides/basics/authentication.mdx index 2ee1ee23..a7174423 100644 --- a/docs/guides/authentication.mdx +++ b/docs/guides/basics/authentication.mdx @@ -7,6 +7,9 @@ You need to authenticate to access all the APIs of Poozle both internal and unif 1. Go to `Settings` page from the left bar. 2. Choose API Keys from the above tabs. 3. Give the key a name, expiry time and click on generate. + + + 4. Done!!. Copy the token and use in as a Bearer token while calling the APIs. ```bash diff --git a/docs/guides/basics/create_user.mdx b/docs/guides/basics/create_user.mdx new file mode 100644 index 00000000..be1ab347 --- /dev/null +++ b/docs/guides/basics/create_user.mdx @@ -0,0 +1,29 @@ +--- +title: "Create User" +--- + +To create a new user for Poozle login you can follow the steps. + +```bash +docker exec -ti poozle-server sh +yarn create-user +``` + +Password should contain alphanumeric and special characters + +``` + +~$ yarn create-user +yarn run v1.22.19 +$ ts-node prisma/seeds/user.ts +Server is healthy! +Enter email: manik@poozle.dev +Enter password: ####### +Enter firstname: Manik +Enter lastname: Aggarwal +User created +Done in 24.05s. + +``` + +You should get user created as shown above. diff --git a/docs/guides/basics/managed_syncs.mdx b/docs/guides/basics/managed_syncs.mdx new file mode 100644 index 00000000..b431663f --- /dev/null +++ b/docs/guides/basics/managed_syncs.mdx @@ -0,0 +1,6 @@ +--- +title: "Managed Syncs" +description: "Offers completely managed data syncs for third-party integrations." +--- + +At present, managed synchronization is provided exclusively for the Ticketing model. Plans are underway to extend this feature to accommodate the rest of the data models in the near future. diff --git a/docs/guides/basics/webhooks.mdx b/docs/guides/basics/webhooks.mdx new file mode 100644 index 00000000..6b39ec81 --- /dev/null +++ b/docs/guides/basics/webhooks.mdx @@ -0,0 +1,6 @@ +--- +title: "Webhooks" +description: "Receive real-time data updates from the source." +--- + +Webhook support is currently under development and will be available in the near future. Progress on this feature can be tracked via this [Pull Request](https://github.com/poozlehq/poozle/issues/100) diff --git a/docs/guides/create_link.mdx b/docs/guides/create_link.mdx deleted file mode 100644 index dc5fb9bd..00000000 --- a/docs/guides/create_link.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Create Link" ---- - -Link represent a URL used by your end users’ to connect between your app and third-party platforms. - -## Create a New Integration Account with Link - -1. On the Links tab, Click on `+ New Link`: - - - - - -2. Provide the necessary information and click on Create. Once done you can copy the link id - - - - - -3. You can use `http://localhost:8000/link/{linkId}` this URL to connec the accounts. You can also add a button in your UI to redirect - users to this URL to connect the third party apps. diff --git a/docs/guides/create_oauth.mdx b/docs/guides/create_oauth.mdx deleted file mode 100644 index 5c44e943..00000000 --- a/docs/guides/create_oauth.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Add OAuth app" ---- - -You can add your own OAuth app. In order to obtain the Client ID and Client Secret, it's necessary for you to register your application with the API provider. It's also important to register the required scopes with both the API provider and on the OAuth page. - -## Create a New OAuth Account - -1. On the OAuth tab, Click on `+ New OAuth App`: - - - - - -2. Choose the integration you want to connect and provide the necessary information. - - - - - -3. Enter the client_id, client_secret and scopes according to the integration. Once done you can click on create. - -4. Once the OAuth is created it will show in the OAuth page. You can now access repective OAuth in the link page. - -## Callback URL - -Please add this Callback URL respectively in the OAuth app - -for local, `http://localhost:8000/api/v1/oauth/callback` - -for self-hosted `https://{your-domain}/api/v1/oauth/callback` diff --git a/docs/guides/create_user.mdx b/docs/guides/create_user.mdx deleted file mode 100644 index d0249e14..00000000 --- a/docs/guides/create_user.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Create User" ---- - -To create a new user for Poozle login you can follow the steps. - -```bash -docker exec -ti poozle-server sh -yarn create-user -``` diff --git a/docs/guides/build_new_integration.mdx b/docs/guides/integrations/build_new_integration.mdx similarity index 100% rename from docs/guides/build_new_integration.mdx rename to docs/guides/integrations/build_new_integration.mdx diff --git a/docs/guides/overview.mdx b/docs/guides/overview.mdx index 3695eeb6..7aa6f297 100644 --- a/docs/guides/overview.mdx +++ b/docs/guides/overview.mdx @@ -6,12 +6,12 @@ description: "Learn about interacting with Poozle's Unified API and third-party ## Basics - + Create a Poozle login user Create a API Key to connect to Poozle APis{" "} @@ -23,27 +23,7 @@ description: "Learn about interacting with Poozle's Unified API and third-party Build your own integration in hours - -## Other - - - Creating an integration account in UI - - Create a link to share with your users - - Add your OAuth app to Poozle - - diff --git a/docs/images/basic/create_token.png b/docs/images/basic/create_token.png new file mode 100644 index 00000000..dca6bd7a Binary files /dev/null and b/docs/images/basic/create_token.png differ diff --git a/docs/images/cloud/landing.png b/docs/images/cloud/landing.png new file mode 100644 index 00000000..44c03f9a Binary files /dev/null and b/docs/images/cloud/landing.png differ diff --git a/docs/images/integration_account/sample_ia_id.png b/docs/images/integration_account/sample_ia_id.png new file mode 100644 index 00000000..bd60c30d Binary files /dev/null and b/docs/images/integration_account/sample_ia_id.png differ diff --git a/docs/images/integration_account/sample_link.png b/docs/images/integration_account/sample_link.png index a78182eb..cc583240 100644 Binary files a/docs/images/integration_account/sample_link.png and b/docs/images/integration_account/sample_link.png differ diff --git a/docs/images/integration_account/sample_link1.png b/docs/images/integration_account/sample_link1.png new file mode 100644 index 00000000..a78182eb Binary files /dev/null and b/docs/images/integration_account/sample_link1.png differ diff --git a/docs/images/oss/create_user.png b/docs/images/oss/create_user.png new file mode 100644 index 00000000..3506d2d1 Binary files /dev/null and b/docs/images/oss/create_user.png differ diff --git a/docs/integrations/overview.mdx b/docs/integrations/overview.mdx new file mode 100644 index 00000000..f803528b --- /dev/null +++ b/docs/integrations/overview.mdx @@ -0,0 +1,84 @@ +--- +title: Supported Integrations +description: "Supported integrations in all categories" +--- + +## Ticketing + + + + Integration your app with Github + + + Integration your app with Jira + + + Create Issue + + + +## Documentation + + + + + Integration your app with Notion + + + Integration your app with Confluence + + + Create Issue + + + +## Mail + + + + Integration your app with Gmail + + + Create Issue + + diff --git a/docs/mint.json b/docs/mint.json index 4097f7ed..9e98d4cc 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -15,6 +15,10 @@ { "name": "Signup", "url": "https://poozle.dev" + }, + { + "name": "Join Us", + "url": "https://join.slack.com/t/poozle-community/shared_invite/zt-1u4mz911h-FeWpOA82wA8kyrz3xg58xQ" } ], "topbarCtaButton": { @@ -29,21 +33,25 @@ "name": "Guides", "url": "guides" }, + { + "name": "Integrations", + "url": "integrations" + }, { "name": "Common API Reference", "url": "api-reference" }, { "name": "Ticketing", - "url": "ticketing" + "url": "models/ticketing" }, { "name": "Mail", - "url": "mail" + "url": "models/mail" }, { "name": "Documentation", - "url": "documentation" + "url": "models/documentation" } ], "navigation": [ @@ -54,12 +62,39 @@ "quickstart" ] }, + { + "group": "Poozle Cloud", + "pages": [ + "cloud/getting-started" + ] + }, { "group": "Poozle Open Source (OSS)", "pages": [ "oss/deploy-poozle" ] }, + { + "group": "Connect Integrations", + "pages": [ + "connect-integrations/login", + { + "group": "Create Integration Account", + "pages": [ + "connect-integrations/api-key", + "connect-integrations/oauth" + ] + } + ] + }, + { + "group": "Models", + "pages": [ + "models/ticketing", + "models/mail", + "models/documentation" + ] + }, { "group": "Contributing", "pages": [ @@ -83,22 +118,22 @@ { "group": "Basics", "pages": [ - "guides/create_user", - "guides/authentication" + "guides/basics/create_user", + "guides/basics/authentication", + "guides/basics/managed_syncs", + "guides/basics/webhooks" ] }, { "group": "Integrations", "pages": [ - "guides/build_new_integration" + "guides/integrations/build_new_integration" ] }, { - "group": "Other", + "group": "Integration", "pages": [ - "guides/create_integration_account", - "guides/create_link", - "guides/create_oauth" + "integrations/overview" ] }, { @@ -151,120 +186,120 @@ { "group": "Get Started", "pages": [ - "ticketing/overview" + "models/ticketing/overview" ] }, { "group": "Get Started", "pages": [ - "mail/overview" + "models/mail/overview" ] }, { "group": "Get Started", "pages": [ - "documentation/overview" + "models/documentation/overview" ] }, { "group": "Integrations", "pages": [ - "ticketing/integrations/github", - "ticketing/integrations/jira" + "models/ticketing/integrations/github", + "models/ticketing/integrations/jira" ] }, { "group": "Integrations", "pages": [ - "mail/integrations/gmail" + "models/mail/integrations/gmail" ] }, { "group": "Integrations", "pages": [ - "documentation/integrations/notion", - "documentation/integrations/confluence" + "models/documentation/integrations/notion", + "models/documentation/integrations/confluence" ] }, { "group": "Collection", "pages": [ - "ticketing/collection/get_collections", - "ticketing/collection/get_collection" + "models/ticketing/collection/get_collections", + "models/ticketing/collection/get_collection" ] }, { "group": "User", "pages": [ - "ticketing/user/get_users", - "ticketing/user/get_user" + "models/ticketing/user/get_users", + "models/ticketing/user/get_user" ] }, { "group": "Ticket", "pages": [ - "ticketing/ticket/get_tickets", - "ticketing/ticket/get_ticket", - "ticketing/ticket/create_ticket", - "ticketing/ticket/update_ticket" + "models/ticketing/ticket/get_tickets", + "models/ticketing/ticket/get_ticket", + "models/ticketing/ticket/create_ticket", + "models/ticketing/ticket/update_ticket" ] }, { "group": "Comment", "pages": [ - "ticketing/comment/get_comments", - "ticketing/comment/get_comment", - "ticketing/comment/create_comment", - "ticketing/comment/update_comment" + "models/ticketing/comment/get_comments", + "models/ticketing/comment/get_comment", + "models/ticketing/comment/create_comment", + "models/ticketing/comment/update_comment" ] }, { "group": "Team", "pages": [ - "ticketing/team/get_teams", - "ticketing/team/get_team", - "ticketing/team/create_team", - "ticketing/team/update_team" + "models/ticketing/team/get_teams", + "models/ticketing/team/get_team", + "models/ticketing/team/create_team", + "models/ticketing/team/update_team" ] }, { "group": "Tag", "pages": [ - "ticketing/tag/get_tags", - "ticketing/tag/get_tag", - "ticketing/tag/create_tag", - "ticketing/tag/update_tag" + "models/ticketing/tag/get_tags", + "models/ticketing/tag/get_tag", + "models/ticketing/tag/create_tag", + "models/ticketing/tag/update_tag" ] }, { "group": "Message", "pages": [ - "mail/messages/get_messages", - "mail/messages/get_message", - "mail/messages/create_message" + "models/mail/messages/get_messages", + "models/mail/messages/get_message", + "models/mail/messages/create_message" ] }, { "group": "Threads", "pages": [ - "mail/threads/get_threads", - "mail/threads/get_thread" + "models/mail/threads/get_threads", + "models/mail/threads/get_thread" ] }, { "group": "Pages", "pages": [ - "documentation/pages/get_pages", - "documentation/pages/get_page", - "documentation/pages/create_page" + "models/documentation/pages/get_pages", + "models/documentation/pages/get_page", + "models/documentation/pages/create_page" ] }, { "group": "Block", "pages": [ - "documentation/blocks/get_block", - "documentation/blocks/update_block", - "documentation/blocks/create_block" + "models/documentation/blocks/get_block", + "models/documentation/blocks/update_block", + "models/documentation/blocks/create_block" ] } ], diff --git a/docs/documentation/blocks/create_block.mdx b/docs/models/documentation/blocks/create_block.mdx similarity index 100% rename from docs/documentation/blocks/create_block.mdx rename to docs/models/documentation/blocks/create_block.mdx diff --git a/docs/documentation/blocks/get_block.mdx b/docs/models/documentation/blocks/get_block.mdx similarity index 100% rename from docs/documentation/blocks/get_block.mdx rename to docs/models/documentation/blocks/get_block.mdx diff --git a/docs/documentation/blocks/update_block.mdx b/docs/models/documentation/blocks/update_block.mdx similarity index 100% rename from docs/documentation/blocks/update_block.mdx rename to docs/models/documentation/blocks/update_block.mdx diff --git a/docs/documentation/integrations/confluence.mdx b/docs/models/documentation/integrations/confluence.mdx similarity index 100% rename from docs/documentation/integrations/confluence.mdx rename to docs/models/documentation/integrations/confluence.mdx diff --git a/docs/documentation/integrations/notion.mdx b/docs/models/documentation/integrations/notion.mdx similarity index 100% rename from docs/documentation/integrations/notion.mdx rename to docs/models/documentation/integrations/notion.mdx diff --git a/docs/documentation/overview.mdx b/docs/models/documentation/overview.mdx similarity index 88% rename from docs/documentation/overview.mdx rename to docs/models/documentation/overview.mdx index 9cf333ab..b8b2e8c3 100644 --- a/docs/documentation/overview.mdx +++ b/docs/models/documentation/overview.mdx @@ -7,10 +7,18 @@ Welcome to the Poozle Documentation API reference documentation! You can use this API to integrate with Poozle and pull data from or push data to integrations that your users have authorized. All API endpoints in the reference documentation below are relative to the following base URL: +#### Local + ``` http://localhost:8000/api/v1/documentation ``` +#### Cloud + +``` +https://app.poozle.dev/api/v1/documentation +``` + ## Integrations diff --git a/docs/documentation/pages/create_page.mdx b/docs/models/documentation/pages/create_page.mdx similarity index 100% rename from docs/documentation/pages/create_page.mdx rename to docs/models/documentation/pages/create_page.mdx diff --git a/docs/documentation/pages/get_page.mdx b/docs/models/documentation/pages/get_page.mdx similarity index 100% rename from docs/documentation/pages/get_page.mdx rename to docs/models/documentation/pages/get_page.mdx diff --git a/docs/documentation/pages/get_pages.mdx b/docs/models/documentation/pages/get_pages.mdx similarity index 100% rename from docs/documentation/pages/get_pages.mdx rename to docs/models/documentation/pages/get_pages.mdx diff --git a/docs/mail/integrations/gmail.mdx b/docs/models/mail/integrations/gmail.mdx similarity index 100% rename from docs/mail/integrations/gmail.mdx rename to docs/models/mail/integrations/gmail.mdx diff --git a/docs/mail/messages/create_message.mdx b/docs/models/mail/messages/create_message.mdx similarity index 100% rename from docs/mail/messages/create_message.mdx rename to docs/models/mail/messages/create_message.mdx diff --git a/docs/mail/messages/get_message.mdx b/docs/models/mail/messages/get_message.mdx similarity index 100% rename from docs/mail/messages/get_message.mdx rename to docs/models/mail/messages/get_message.mdx diff --git a/docs/mail/messages/get_messages.mdx b/docs/models/mail/messages/get_messages.mdx similarity index 100% rename from docs/mail/messages/get_messages.mdx rename to docs/models/mail/messages/get_messages.mdx diff --git a/docs/mail/overview.mdx b/docs/models/mail/overview.mdx similarity index 80% rename from docs/mail/overview.mdx rename to docs/models/mail/overview.mdx index 890bd4c8..a2252abb 100644 --- a/docs/mail/overview.mdx +++ b/docs/models/mail/overview.mdx @@ -7,8 +7,16 @@ Welcome to the Poozle Mail API reference documentation! You can use this API to integrate with Poozle and pull data from or push data to integrations that your users have authorized. All API endpoints in the reference documentation below are relative to the following base URL: +#### Local + +``` + http://localhost:8000/api/v1/mail +``` + +#### Cloud + ``` -http://localhost:8000/api/v1/mail +https://app.poozle.dev/api/v1/mail ``` ## Integrations diff --git a/docs/mail/threads/get_thread.mdx b/docs/models/mail/threads/get_thread.mdx similarity index 100% rename from docs/mail/threads/get_thread.mdx rename to docs/models/mail/threads/get_thread.mdx diff --git a/docs/mail/threads/get_threads.mdx b/docs/models/mail/threads/get_threads.mdx similarity index 100% rename from docs/mail/threads/get_threads.mdx rename to docs/models/mail/threads/get_threads.mdx diff --git a/docs/ticketing/collection/get_collection.mdx b/docs/models/ticketing/collection/get_collection.mdx similarity index 100% rename from docs/ticketing/collection/get_collection.mdx rename to docs/models/ticketing/collection/get_collection.mdx diff --git a/docs/ticketing/collection/get_collections.mdx b/docs/models/ticketing/collection/get_collections.mdx similarity index 100% rename from docs/ticketing/collection/get_collections.mdx rename to docs/models/ticketing/collection/get_collections.mdx diff --git a/docs/ticketing/comment/create_comment.mdx b/docs/models/ticketing/comment/create_comment.mdx similarity index 100% rename from docs/ticketing/comment/create_comment.mdx rename to docs/models/ticketing/comment/create_comment.mdx diff --git a/docs/ticketing/comment/get_comment.mdx b/docs/models/ticketing/comment/get_comment.mdx similarity index 100% rename from docs/ticketing/comment/get_comment.mdx rename to docs/models/ticketing/comment/get_comment.mdx diff --git a/docs/ticketing/comment/get_comments.mdx b/docs/models/ticketing/comment/get_comments.mdx similarity index 100% rename from docs/ticketing/comment/get_comments.mdx rename to docs/models/ticketing/comment/get_comments.mdx diff --git a/docs/ticketing/comment/update_comment.mdx b/docs/models/ticketing/comment/update_comment.mdx similarity index 100% rename from docs/ticketing/comment/update_comment.mdx rename to docs/models/ticketing/comment/update_comment.mdx diff --git a/docs/models/ticketing/integrations/github.mdx b/docs/models/ticketing/integrations/github.mdx new file mode 100644 index 00000000..c16a4619 --- /dev/null +++ b/docs/models/ticketing/integrations/github.mdx @@ -0,0 +1,86 @@ +--- +title: Github +description: This page contains the setup guide and reference information for the GitHub integration. +--- + +## Authentication Specification + +We support authentication based on API Key and OAuth2. We will be requiring below information. + +API Key + +1. API Key (api_key) +2. Organisation identifier (org) + +OAuth2 + +1. Client Id (client_id) +2. Client Secret (client_secret) +3. Scopes (scopes) +4. Refresh Tokens (refresh_token) +5. Organisation identifier (org) + +## Supported Models + +- [Collection](/ticketing/collection) +- [User](/ticketing/user) +- [Team](/ticketing/team) +- [Ticket](/ticketing/ticket) +- [Comment](/ticketing/comment) +- [Tag](/ticketing/tag) + +# Mapping + +## Collection + +| Key | Value | Description | +| --------------- | :----------: | :------------------------------------------------: | +| `id` | `id` | The ID of the project | +| `ticket_id` | `issue_url` | The ID of the ticket, extracted from the issue URL | +| `body` | `body` | The body text of the project | +| `created_by_id` | `user.id` | The ID of the user who created the project | +| `created_by` | `user.login` | The username of the user who created the project | +| `created_at` | `created_at` | The date and time the project was created | +| `updated_at` | `updated_at` | The date and time the project was last updated | + +## User + +| Key | Value | Description | +| -------- | :----------: | :------------------------: | +| `id` | `login` | The ID of the user | +| `name` | `login` | The name of the user | +| `avatar` | `avatar_url` | The avatar URL of the user | + +## Team + +| Key | Value | Description | +| ------------- | :-----------: | :-------------------------: | +| `id` | `id` | The ID of the team | +| `name` | `name` | The name of the team | +| `description` | `description` | The description of the team | + +## Ticket + +| Key | Value | Description | +| --------------- | :-----------------------: | :---------------------------------------------: | +| `id` | `number` | The ID of the ticket | +| `name` | `title` | The title of the ticket | +| `collection_id` | `collection_id(internal)` | The ID of the collection the ticket belongs to | +| `description` | `body` | The description of the ticket | +| `status` | `state` | The status of the ticket | +| `created_at` | `created_at` | The date and time the ticket was created | +| `updated_at` | `updated_at` | The date and time the ticket was last updated | +| `created_by` | `user.login` | The username of the user who created the ticket | +| `type` | `pull_request` | The type of the ticket (pull request or issue) | +| `assignees` | `assignees(id, login)` | The assignees of the ticket | +| `ticket_url` | `url` | The URL of the ticket | +| `tags` | `labels(id, name)` | The tags of the ticket | + +## Tag + +| Key | Value | Description | +| ------------- | :-----------: | :------------------------: | +| `id` | `id` | The ID of the tag | +| `name` | `name` | The name of the tag | +| `description` | `description` | The description of the tag | +| `color` | `color` | The color of the tag | diff --git a/docs/models/ticketing/integrations/jira.mdx b/docs/models/ticketing/integrations/jira.mdx new file mode 100644 index 00000000..1bf508ac --- /dev/null +++ b/docs/models/ticketing/integrations/jira.mdx @@ -0,0 +1,91 @@ +--- +title: Jira +description: This page contains the setup guide and reference information for the Jira integration. +--- + +## Authentication Specification + +We support authentication based on API Key and OAuth2. We will be requiring below information. + +API Key + +1. Email ID (email_id) +2. API Key (api_key) +3. Jira Domain (jira_domain) + +OAuth2 + +1. Client Id (client_id) +2. Client Secret (client_secret) +3. Scopes (scopes) +4. Refresh Tokens (refresh_token) +5. Jira Domain (jira_domain) + +## Supported Models + +- [Collection](/ticketing/collection) +- [User](/ticketing/user) +- [Ticket](/ticketing/ticket) +- [Comment](/ticketing/comment) +- [Tag](/ticketing/tag) + +# Mapping + +## Attachment + +| Key | Value | Description | +| -------------- | :------------------------------------------------: | :------------------------------------------: | +| `id` | `attachmentId` | The ID of the attachment | +| `file_name` | `filename` | The filename of the attachment | +| `content_type` | `mimeType` | The MIME type of the attachment | +| `uploaded_by` | `{ id: author.key, username: author.displayName }` | The user who uploaded the attachment | +| `created_at` | `created` | The date and time the attachment was created | + +## Collection + +| Key | Value | Description | +| ------ | :--------------: | :------------------------: | +| `id` | `id` | The ID of the collection | +| `name` | `name` | The name of the collection | +| `type` | `projectTypeKey` | The type of the collection | + +## User + +| Key | Value | Description | +| -------- | :-------------------: | :--------------------------: | +| `id` | `accountId` | The ID of the user | +| `name` | `displayName` | The display name of the user | +| `avatar` | `avatarUrls['48x48']` | The avatar URL of the user | + +## Ticket + +| Key | Value | Description | +| --------------- | :--------------------------------------------------------------------------: | :---------------------------------------------: | +| `id` | `id` | The ID of the ticket | +| `name` | `fields.summary` | The summary of the ticket | +| `collection_id` | `fields.project.id` | The ID of the collection the ticket belongs to | +| `description` | `fields.description` | The description of the ticket | +| `status` | `fields.status.name` | The status of the ticket | +| `created_at` | `fields.created` | The date and time the ticket was created | +| `updated_at` | `fields.updated` | The date and time the ticket was last updated | +| `created_by` | `fields.creator.displayName` | The username of the user who created the ticket | +| `type` | `fields.issuetype.name` | The type of the ticket | +| `assignees` | `{ id: fields.assignee?.accountId, username: fields.assignee?.displayName }` | The assignees of the ticket | +| `ticket_url` | `self` | The URL of the ticket | +| `parent_id` | `fields.parent?.id` | The ID of the parent ticket | +| `priority` | `fields.priority.name` | The priority of the ticket | +| `due_date` | `fields.duedate` | The due date of the ticket | +| `tags` | `labels(id, displayName)` | The tags of the ticket | + +## Comment + +| Key | Value | Description | +| --------------- | :------------------------------------------------------: | :--------------------------------------------: | +| `id` | `id` | The ID of the comment | +| `ticket_id` | `collection_id(internal) | The ID of the ticket the comment belongs to | +| `body` | `body` | The body text of the comment | +| `created_by_id` | `author.accountId` | The ID of the user who created the comment | +| `created_by` | `{ id: author.accountId, username: author.displayName }` | The user who created the comment | +| `is_private` | `jsdPublic` | Whether the comment is public or private | +| `created_at` | `created` | The date and time the comment was created | +| `updated_at` | `updated` | The date and time the comment was last updated | diff --git a/docs/ticketing/overview.mdx b/docs/models/ticketing/overview.mdx similarity index 88% rename from docs/ticketing/overview.mdx rename to docs/models/ticketing/overview.mdx index e79a61e6..3e5d1d26 100644 --- a/docs/ticketing/overview.mdx +++ b/docs/models/ticketing/overview.mdx @@ -7,10 +7,18 @@ Welcome to the Poozle Ticketing API reference documentation! You can use this API to integrate with Poozle and pull data from or push data to integrations that your users have authorized. All API endpoints in the reference documentation below are relative to the following base URL: +#### Local + ``` http://localhost:8000/api/v1/ticketing ``` +#### Cloud + +``` +https://app.poozle.dev/api/v1/ticketing +``` + ## Integrations diff --git a/docs/ticketing/tag/create_tag.mdx b/docs/models/ticketing/tag/create_tag.mdx similarity index 100% rename from docs/ticketing/tag/create_tag.mdx rename to docs/models/ticketing/tag/create_tag.mdx diff --git a/docs/ticketing/tag/get_tag.mdx b/docs/models/ticketing/tag/get_tag.mdx similarity index 100% rename from docs/ticketing/tag/get_tag.mdx rename to docs/models/ticketing/tag/get_tag.mdx diff --git a/docs/ticketing/tag/get_tags.mdx b/docs/models/ticketing/tag/get_tags.mdx similarity index 100% rename from docs/ticketing/tag/get_tags.mdx rename to docs/models/ticketing/tag/get_tags.mdx diff --git a/docs/ticketing/tag/update_tag.mdx b/docs/models/ticketing/tag/update_tag.mdx similarity index 100% rename from docs/ticketing/tag/update_tag.mdx rename to docs/models/ticketing/tag/update_tag.mdx diff --git a/docs/ticketing/team/create_team.mdx b/docs/models/ticketing/team/create_team.mdx similarity index 100% rename from docs/ticketing/team/create_team.mdx rename to docs/models/ticketing/team/create_team.mdx diff --git a/docs/ticketing/team/get_team.mdx b/docs/models/ticketing/team/get_team.mdx similarity index 100% rename from docs/ticketing/team/get_team.mdx rename to docs/models/ticketing/team/get_team.mdx diff --git a/docs/ticketing/team/get_teams.mdx b/docs/models/ticketing/team/get_teams.mdx similarity index 100% rename from docs/ticketing/team/get_teams.mdx rename to docs/models/ticketing/team/get_teams.mdx diff --git a/docs/ticketing/team/update_team.mdx b/docs/models/ticketing/team/update_team.mdx similarity index 100% rename from docs/ticketing/team/update_team.mdx rename to docs/models/ticketing/team/update_team.mdx diff --git a/docs/ticketing/ticket/create_ticket.mdx b/docs/models/ticketing/ticket/create_ticket.mdx similarity index 100% rename from docs/ticketing/ticket/create_ticket.mdx rename to docs/models/ticketing/ticket/create_ticket.mdx diff --git a/docs/ticketing/ticket/get_ticket.mdx b/docs/models/ticketing/ticket/get_ticket.mdx similarity index 100% rename from docs/ticketing/ticket/get_ticket.mdx rename to docs/models/ticketing/ticket/get_ticket.mdx diff --git a/docs/ticketing/ticket/get_tickets.mdx b/docs/models/ticketing/ticket/get_tickets.mdx similarity index 100% rename from docs/ticketing/ticket/get_tickets.mdx rename to docs/models/ticketing/ticket/get_tickets.mdx diff --git a/docs/ticketing/ticket/update_ticket.mdx b/docs/models/ticketing/ticket/update_ticket.mdx similarity index 100% rename from docs/ticketing/ticket/update_ticket.mdx rename to docs/models/ticketing/ticket/update_ticket.mdx diff --git a/docs/ticketing/user/get_user.mdx b/docs/models/ticketing/user/get_user.mdx similarity index 100% rename from docs/ticketing/user/get_user.mdx rename to docs/models/ticketing/user/get_user.mdx diff --git a/docs/ticketing/user/get_users.mdx b/docs/models/ticketing/user/get_users.mdx similarity index 100% rename from docs/ticketing/user/get_users.mdx rename to docs/models/ticketing/user/get_users.mdx diff --git a/docs/oss/deploy-poozle.mdx b/docs/oss/deploy-poozle.mdx index 7026bfb4..a594a447 100644 --- a/docs/oss/deploy-poozle.mdx +++ b/docs/oss/deploy-poozle.mdx @@ -9,7 +9,7 @@ description: "Deploying Poozle Open-Source just takes 1 minute." ```bash git clone https://github.com/poozlehq/poozle.git -cd engine +cd poozle docker-compose up -d ``` @@ -20,10 +20,49 @@ docker exec -ti poozle-server sh yarn create-user ``` -You can create more users by following step 3 again. +Password should contain alphanumeric and special characters + +``` + +~$ yarn create-user +yarn run v1.22.19 +$ ts-node prisma/seeds/user.ts +Server is healthy! +Enter email: manik@poozle.dev +Enter password: ####### +Enter firstname: Manik +Enter lastname: Aggarwal +User created +Done in 24.05s. + +``` + +You should get user created as shown above. + +You can create more users by following step 3 again. 4. You can now check poozle at `http://localhost:8000` +## Connect your APIs + + + + Login to Dashboard + + + Link third-party platforms of end users to Poozle.{" "} + + + + ## FAQ If there are any questions that we couldn't answer here, we'd love to help you get started. [Join our Slack](https://join.slack.com/t/poozle-community/shared_invite/zt-1u4mz911h-FeWpOA82wA8kyrz3xg58xQ) and feel free to ask your questions in the #support channel. + +``` + +``` diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index a5b8d193..9da664ee 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -1,14 +1,20 @@ --- title: Quickstart -sidebarTitle: 🚀 Quickstart -description: "See Poozle in action in 5 minutes" +sidebarTitle: Quickstart 🚀 +description: "Discover Poozle's features and functionality within a short span" --- -Experience Poozle by fetching GitHub issues from your public repos in 5 minutes. + +⭐ Level - Beginner -## Authorize an API (Github) +⏱️ Time - 5 minutes -1. First, you can [deploy Poozle](/oss/deploy-poozle) using docker. Don't worry it's just `docker-compose up`: + +Experience Poozle by fetching GitHub issues from your public repos. + +## Create Integration Account (Github) + +1. First, you can [deploy Poozle](/oss/deploy-poozle) using docker. Don't worry it's just `docker-compose up` 2. On the [Accounts tab](http://localhost:8000/workspaces), click `+ New Integration Account` on the left side: @@ -24,11 +30,17 @@ Experience Poozle by fetching GitHub issues from your public repos in 5 minutes. 1. On the [Accounts tab](http://localhost:8000/workspaces), click on the connected integration. -2. In the URL `http://localhost:8000/workspaces/0a58f56e-3f59-4f4e-a8e1-a9e47aae5c3c/integration_account/874aa40c-f4bb-4985-8db7-01d2a259b9a0`. Take - workspaceId `0a58f56e-3f59-4f4e-a8e1-a9e47aae5c3c` and integrationAccountId `874aa40c-f4bb-4985-8db7-01d2a259b9a0` Copy them. +2. In the URL `http://localhost:8000/workspaces/0a58f56e-3f59-4f4e-a8e1-a9e47aae5c3c/integration_account`. Take + workspaceId `0a58f56e-3f59-4f4e-a8e1-a9e47aae5c3c` and Copy it. + +3. Go to the integration account and copy the integration account ID + + + + -3. Go to `Settings` page and click on API Keys. Generate a new key to use it as a Bearer token. +4. Go to `Settings` page and click on API Keys. [Generate a new key](guides/basics/authentication) to use it as a Bearer token. -4. You can call `http://localhost:8000/api/v1/ticketing/{repo_name}/tickets` with headers `workspaceId`, `integrationAccountId` and `Authorization` with its values respectively. +5. You can call `http://localhost:8000/api/v1/ticketing/{repo_name}/tickets?realtime=true` with headers `workspaceId`, `integrationAccountId` and `Authorization` with its values respectively. -5. Hurray you can now all access all the data from [ticketing models](/ticketing/overview). +6. Hurray you can now all access all the data from [ticketing models](/ticketing/overview). diff --git a/docs/ticketing/integrations/github.mdx b/docs/ticketing/integrations/github.mdx deleted file mode 100644 index 2cdc8525..00000000 --- a/docs/ticketing/integrations/github.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Github -description: This page contains the setup guide and reference information for the GitHub integration. ---- - -## Authentication Specification - -We support authentication based on API Key. We will be requiring below information. - -1. API Key (api_key) -2. Organisation identifier (org) - -## Supported Models - -- [Collection](/ticketing/collection) -- [User](/ticketing/user) -- [Team](/ticketing/team) -- [Ticket](/ticketing/ticket) -- [Comment](/ticketing/comment) -- [Tag](/ticketing/tag) - -# Mapping - -## Collection -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `id` | The ID of the project | -| `ticket_id` | `issue_url` | The ID of the ticket, extracted from the issue URL | -| `body` | `body` | The body text of the project | -| `created_by_id` | `user.id` | The ID of the user who created the project | -| `created_by` | `user.login` | The username of the user who created the project | -| `created_at` | `created_at` | The date and time the project was created | -| `updated_at` | `updated_at` | The date and time the project was last updated | - -## User -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `login` | The ID of the user | -| `name` | `login` | The name of the user | -| `avatar` | `avatar_url` | The avatar URL of the user | - -## Team -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `id` | The ID of the team | -| `name` | `name` | The name of the team | -| `description` | `description` | The description of the team | - -## Ticket -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `number` | The ID of the ticket | -| `name` | `title` | The title of the ticket | -| `collection_id` | `collection_id(internal)` | The ID of the collection the ticket belongs to | -| `description` | `body` | The description of the ticket | -| `status` | `state` | The status of the ticket | -| `created_at` | `created_at` | The date and time the ticket was created | -| `updated_at` | `updated_at` | The date and time the ticket was last updated | -| `created_by` | `user.login` | The username of the user who created the ticket | -| `type` | `pull_request` | The type of the ticket (pull request or issue) | -| `assignees` | `assignees(id, login)` | The assignees of the ticket | -| `ticket_url` | `url` | The URL of the ticket | -| `tags` | `labels(id, name)` | The tags of the ticket | - -## Tag -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `id` | The ID of the tag | -| `name` | `name` | The name of the tag | -| `description` | `description` | The description of the tag | -| `color` | `color` | The color of the tag | - diff --git a/docs/ticketing/integrations/jira.mdx b/docs/ticketing/integrations/jira.mdx deleted file mode 100644 index 8948d68b..00000000 --- a/docs/ticketing/integrations/jira.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Jira -description: This page contains the setup guide and reference information for the Jira integration. ---- - -## Authentication Specification - -We support authentication based on API Key. We will be requiring below information. - -1. Email ID (email_id) -2. API Key (api_key) -3. Jira domain (jira_domain) - -## Supported Models - -- [Collection](/ticketing/collection) -- [User](/ticketing/user) -- [Ticket](/ticketing/ticket) -- [Comment](/ticketing/comment) -- [Tag](/ticketing/tag) - -# Mapping - -## Attachment -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `attachmentId` | The ID of the attachment | -| `file_name` | `filename` | The filename of the attachment | -| `content_type`| `mimeType` | The MIME type of the attachment | -| `uploaded_by` | `{ id: author.key, username: author.displayName }` | The user who uploaded the attachment | -| `created_at` | `created` | The date and time the attachment was created | - -## Collection -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `id` | The ID of the collection | -| `name` | `name` | The name of the collection | -| `type` | `projectTypeKey`| The type of the collection | - -## User -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `accountId` | The ID of the user | -| `name` | `displayName` | The display name of the user | -| `avatar` | `avatarUrls['48x48']` | The avatar URL of the user | - -## Ticket -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `id` | The ID of the ticket | -| `name` | `fields.summary` | The summary of the ticket | -| `collection_id` | `fields.project.id` | The ID of the collection the ticket belongs to | -| `description` | `fields.description` | The description of the ticket | -| `status` | `fields.status.name` | The status of the ticket | -| `created_at` | `fields.created` | The date and time the ticket was created | -| `updated_at` | `fields.updated` | The date and time the ticket was last updated | -| `created_by` | `fields.creator.displayName` | The username of the user who created the ticket | -| `type` | `fields.issuetype.name` | The type of the ticket | -| `assignees` | `{ id: fields.assignee?.accountId, username: fields.assignee?.displayName }` | The assignees of the ticket | -| `ticket_url` | `self` | The URL of the ticket | -| `parent_id` | `fields.parent?.id` | The ID of the parent ticket | -| `priority` | `fields.priority.name` | The priority of the ticket | -| `due_date` | `fields.duedate` | The due date of the ticket | -| `tags` | `labels(id, displayName)` | The tags of the ticket | - -## Comment -| Key | Value | Description | -| ------------- |:-------------:|:-------------:| -| `id` | `id` | The ID of the comment | -| `ticket_id` | `collection_id(internal) | The ID of the ticket the comment belongs to | -| `body` | `body` | The body text of the comment | -| `created_by_id` | `author.accountId` | The ID of the user who created the comment | -| `created_by` | `{ id: author.accountId, username: author.displayName }` | The user who created the comment | -| `is_private` | `jsdPublic` | Whether the comment is public or private | -| `created_at` | `created` | The date and time the comment was created | -| `updated_at` | `updated` | The date and time the comment was last updated |