Skip to content

Commit

Permalink
Merge branch 'main' into ticketing-linear
Browse files Browse the repository at this point in the history
  • Loading branch information
naelob authored Sep 3, 2024
2 parents 69369f3 + dca151a commit fe2a4f2
Show file tree
Hide file tree
Showing 200 changed files with 17,814 additions and 5,662 deletions.
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ ENCRYPT_CRYPTO_SECRET_KEY="0123456789abcdef0123456789abcdef"
SENTRY_DSN=
SENTRY_ENABLED=FALSE

POSTHOG_HOST=
POSTHOG_KEY=
PH_TELEMETRY= #FALSE or TRUE

# ================================================
# REDIS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@ jobs:
build-args: |
NEXT_PUBLIC_BACKEND_DOMAIN=${{ secrets.NEXT_PUBLIC_BACKEND_DOMAIN }}
NEXT_PUBLIC_MAGIC_LINK_DOMAIN=${{ secrets.NEXT_PUBLIC_MAGIC_LINK_DOMAIN }}
NEXT_PUBLIC_DISTRIBUTION=${{ env.DISTRIBUTION }}
NEXT_PUBLIC_DISTRIBUTION=${{ env.DISTRIBUTION }}
NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS=${{ secrets.NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS }}
NEXT_PUBLIC_WEBAPP_DOMAIN= ${{env.NEXT_PUBLIC_WEBAPP_DOMAIN}}
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,6 @@ jobs:
build-args: |
NEXT_PUBLIC_BACKEND_DOMAIN=${{ secrets.NEXT_PUBLIC_BACKEND_DOMAIN }}
NEXT_PUBLIC_MAGIC_LINK_DOMAIN=${{ secrets.NEXT_PUBLIC_MAGIC_LINK_DOMAIN }}
NEXT_PUBLIC_DISTRIBUTION=${{ env.DISTRIBUTION }}
NEXT_PUBLIC_DISTRIBUTION=${{ env.DISTRIBUTION }}
NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS=${{ secrets.NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS }}
NEXT_PUBLIC_WEBAPP_DOMAIN= ${{env.NEXT_PUBLIC_WEBAPP_DOMAIN}}
6 changes: 3 additions & 3 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
speakeasyVersion: 1.366.0
speakeasyVersion: 1.374.2
sources:
merge-code-samples-into-spec:
sourceNamespace: merge-code-samples-into-spec
sourceRevisionDigest: sha256:61d763ced26b2104e5f13eb6e4b32bd0f598073da2505d842baaa9efd4c78ff1
sourceBlobDigest: sha256:d53140203694ab341c7f9b60bcfce1995e2c287358ec29504fcb45b677d38918
sourceRevisionDigest: sha256:1bcf3a8cca852c571571fad60c90aad27624f86e4f2fb58e3777f0c3a6ec712a
sourceBlobDigest: sha256:ebdf0ba69a79a32d558c774cfe0f0c32d742319ed3c3d3d887bf14ac67f417d8
tags:
- latest
- main
Expand Down
150 changes: 131 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
</p>
</div>


# 🕹️ Try

- Prerequisite: You should have Git and Docker installed
Expand All @@ -39,14 +38,13 @@
3. Start

```
docker compose up
docker compose -f docker-compose.source.yml up
```

Panora is now running! Follow our [Quickstart Guide](https://docs.panora.dev/quick-start) to start adding integrations to your product !

See also [our selfhost guide here !](https://docs.panora.dev/open-source/selfhost/self-host-guide)


# ✨ Core Features

| |
Expand All @@ -64,13 +62,14 @@ Panora supports integration with the following objects across multiple platforms

### CRM Unified API

| | Contacts | Deals | Notes | Engagements | Tasks | Users | Companies |
|-----------------------------------------------|:--------:|:-----:|:-----:|:-----------:|:-----:|:-----:|:---------:|
| Hubspot | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Pipedrive | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Zoho CRM | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Zendesk Sell | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Attio | ✔️ | | | | | | ✔️ |
| | Contacts | Deals | Notes | Engagements | Tasks | Users | Companies | Stage |
|-----------------------------------------------|:--------:|:-----:|:-----:|:-----------:|:-----:|:-----:|:---------:|:---------:|
| Hubspot | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | ✔️ |
| Pipedrive | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |✔️ |
| Zoho CRM | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | |
| Zendesk Sell | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | ✔️|
| Attio | ✔️ | ✔️ | ✔️ | | ✔️ | ✔️ | ✔️ | ✔️ |
| Close | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |✔️ |

### Ticketing Unified API

Expand All @@ -80,27 +79,140 @@ Panora supports integration with the following objects across multiple platforms
| Front |||||||| |
| Jira |||| | ||||
| Gitlab |||| | | | ||

| Github |||||||| |

### ATS Unified API (New!)

| | Activities | Applications | Candidates | Departments | Interviews | Jobs | Offers | Offices | Scorecard | Users |
|-------------|:----------:|:------------:|:----------:|:-----------:|:----------:|:----:|:------:|:-------:|:---------:|:-----:|
| Ashby |||||||||||
| | Activities | Applications | Candidates | Departments | Interviews | Jobs | Offers | Offices | Scorecard | Users | Eeocs | Job Interview Stage | Tags | Reject Reasons |
|-------------|:----------:|:------------:|:----------:|:-----------:|:----------:|:----:|:------:|:-------:|:---------:|:-----:|:-------:|:-------:|:-------:|:-------:|
| Ashby ||||||||| || ||| |

### HRIS Unified API (New!)

| | Bankinfos | Benefits | Companies | Dependents | Employee | Employee Payroll Runs | Employer Benefits | Employments | Groups | Locations | Paygroups | Payrollrun | Timeoff | Timeoff Balances | Timesheet Entries |
|-------------|:----------:|:------------:|:----------:|:-----------:|:----------:|:----:|:------:|:-------:|:---------:|:-----:|:-----:|:-----:|:-----:|:-----:| :-----:|
| Gusto | ||| || ||||| | | | | |

### File Storage Unified API

| File Storage | Drives | Files | Folders | Groups | Users | Permissions | Shared Links |
| | Drives | Files | Folders | Groups | Users | Permissions | Shared Links |
|-----------------------------------------------|:--------:|:-----:|:-----:|:-----------:|:-----:|:-----:|:---------:|
| [Google Drive]() | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | |
| [Box]() | | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| [Dropbox]() | | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| [OneDrive]() | ✔️ | ✔️ | ✔️| ✔️ | ✔️ | | |
| Google Drive | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | |
| Box | | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Dropbox | | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| OneDrive | ✔️ | ✔️ | ✔️| ✔️ | ✔️ | | |

### Ecommerce Unified API

| | Customers | Orders | Fulfillments | Fulfillment Orders | Products |
|-----------------------------------------------|:--------:|:-----:|:-----:|:-----------:|:-----:|
| Amazon | ✔️ | ✔️ | | | |
| Shopify | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Squarespace | ✔️ | ✔️ | | | ✔️ |
| Woocommerce | ✔️ | ✔️ | | | ✔️ |

Your favourite software is missing? [Ask the community to build a connector!](https://github.com/panoratech/Panora/issues/new)

# 🚢 Roadmap

## 🧠 Retrieval Engine for RAG

- [ ] Access and manage data from any source, including documents, chunk & vectors
- [ ] Semantic, keyword and hybrid search against a vector database

## 🪄 Integrations Coming Soon

#### CRM

- [x] Microsoft Dynamics 365
- [x] Linear
- [x] Redtail CRM
- [x] Wealthbox
- [x] Leadsquared
- [ ] Salesforce
- [ ] Affinity CRM
- [ ] Odoo
- [ ] Intelliflow
- [ ] Xplan
- [ ] Plannr
- [ ] ACT!
- [ ] Jungo
- [ ] Surefire
- [ ] Velocity

#### Ticketing

- [ ] Service Now
- [ ] Wrike
- [ ] Dixa
- [ ] Service Now
- [ ] Asana
- [ ] Aha
- [ ] Clickup

#### Accounting

- [ ] Wave Financial
- [ ] Xero
- [ ] Quickbooks

#### File Storage

- [ ] Google Drive
- [ ] Dropbox
- [ ] Sharepoint
- [ ] One Drive

#### Productivity

- [ ] Slack
- [ ] Notion

#### HRIS

- [ ] Workday
- [ ] ADP Workforce
- [x] Sage
- [x] Deel
- [ ] BambooHR
- [ ] Rippling

#### Ecommerce

- [ ] Ebay
- [ ] Faire
- [x] Webflow
- [ ] Mercado Libre
- [ ] Prestashop
- [ ] Magento
- [ ] BigCommerce

#### ATS

- [ ] Greenhouse
- [ ] Lever
- [ ] Avature

#### Cybersecurity

- [ ] Snyk
- [ ] Qualys
- [ ] Crowdstrike
- [ ] Semgrep
- [ ] Rapids7InsightVm
- [ ] Tenable
- [ ] SentinelOne
- [ ] Microsoft Defender

#### Legacy Softwares

- [ ] Netsuite (Accounting)
- [ ] SAP (ERP)
- [ ] Ariba
- [ ] Concur
- [ ] Magaya (TMS)
- [ ] Cargowise (TMS)

# 👾 Join the community

- [Join the Discord](https://discord.com/invite/PH5k7gGubt)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ const DynamicCatalog = ({projectId,linkedUserId, category, optionalApiUrl} : Dyn
return [{
connector_name: connector_name,
category: category,
status: String(value)
status: value === null ? "true" : String(value)
}];
}
return [];
Expand Down
1 change: 1 addition & 0 deletions apps/magic-link/src/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
margin: 0 auto;
padding: 2rem;
text-align: center;
background: #09090B;
}

.logo {
Expand Down
2 changes: 1 addition & 1 deletion apps/magic-link/src/lib/ProviderModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ interface IBasicAuthFormData {
}

const domainFormats: { [key: string]: string } = {
microsoftdynamicssales: 'YOURORGNAME.api.crm12.dynamics.com',
microsoftdynamicssales: 'YOURORGNAME.api.crm3.dynamics.com',
bigcommerce: 'If your api domain is https://api.bigcommerce.com/stores/eubckcvkzg/v3 then store_hash is eubckcvkzg',
};

Expand Down
2 changes: 2 additions & 0 deletions apps/webapp/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,14 @@ ARG NEXT_PUBLIC_DISTRIBUTION
ARG NEXT_PUBLIC_BACKEND_DOMAIN
ARG NEXT_PUBLIC_MAGIC_LINK_DOMAIN
ARG NEXT_PUBLIC_WEBAPP_DOMAIN
ARG NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS


ENV NEXT_PUBLIC_DISTRIBUTION="$NEXT_PUBLIC_DISTRIBUTION"
ENV NEXT_PUBLIC_BACKEND_DOMAIN="${NEXT_PUBLIC_BACKEND_DOMAIN}"
ENV NEXT_PUBLIC_MAGIC_LINK_DOMAIN="${NEXT_PUBLIC_MAGIC_LINK_DOMAIN}"
ENV NEXT_PUBLIC_WEBAPP_DOMAIN="${NEXT_PUBLIC_WEBAPP_DOMAIN}"
ENV NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS="${NEXT_PUBLIC_REDIRECT_WEBHOOK_INGRESS}"

RUN corepack enable

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const CopySnippet = () => {
`<PanoraDynamicCatalogCard
category={ConnectorCategory.Crm}
projectId={"c9a1b1f8-466d-442d-a95e-11cdd00baf49"}
returnUrl={"https://acme.inc"}
optionalApiUrl={"https://acme.inc"}
linkedUserId={"b860d6c1-28f9-485c-86cd-fb09e60f10a2"}
/>`
);
Expand All @@ -50,7 +50,7 @@ export const CopySnippet = () => {
name={"hubspot"}
category={ConnectorCategory.Crm}
projectId={"c9a1b1f8-466d-442d-a95e-11cdd00baf49"}
returnUrl={"https://acme.inc"}
optionalApiUrl={"https://acme.inc"}
linkedUserId={"b860d6c1-28f9-485c-86cd-fb09e60f10a2"}
/>`
);
Expand Down Expand Up @@ -131,7 +131,7 @@ export const CopySnippet = () => {
<span className="text-cyan-600">projectId</span>{`={'c9a1b1f8-466d-442d-a95e-11cdd00baf49'}`}
</span>
<span className="pl-4">
<span className="text-rose-600">returnUrl</span>{`={'https://acme.inc'}`}
<span className="text-rose-600">optionalApiUrl</span>{`={'https://acme.inc'}`}
</span>
<span className="pl-4">
<span className="text-amber-400">linkedUserId</span>{`={'b860d6c1-28f9-485c-86cd-fb09e60f10a2'}`}
Expand Down Expand Up @@ -191,7 +191,7 @@ export const CopySnippet = () => {
<span className="text-cyan-600">projectId</span>{`={'c9a1b1f8-466d-442d-a95e-11cdd00baf49'}`}
</span>
<span className="pl-4">
<span className="text-rose-600">returnUrl</span>{`={'https://acme.inc'}`}
<span className="text-rose-600">optionalApiUrl</span>{`={'https://acme.inc'}`}
</span>
<span className="pl-4">
<span className="text-amber-400">linkedUserId</span>{`={'b860d6c1-28f9-485c-86cd-fb09e60f10a2'}`}
Expand Down
42 changes: 25 additions & 17 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,15 @@ services:
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASSWORD: ${SMTP_PASSWORD}

MICROSOFTDYNAMICSSALES_CRM_CLOUD_CLIENT_ID: ${MICROSOFTDYNAMICSSALES_CRM_CLOUD_CLIENT_ID}
MICROSOFTDYNAMICSSALES_CRM_CLOUD_CLIENT_SECRET: ${MICROSOFTDYNAMICSSALES_CRM_CLOUD_CLIENT_SECRET}
SNYK_CYBERSECURITY_CLOUD_CLIENT_ID: ${SNYK_CYBERSECURITY_CLOUD_CLIENT_ID}
SNYK_CYBERSECURITY_CLOUD_CLIENT_SECRET: ${SNYK_CYBERSECURITY_CLOUD_CLIENT_SECRET}
CROWDSTRIKE_CYBERSECURITY_CLOUD_CLIENT_ID: ${CROWDSTRIKE_CYBERSECURITY_CLOUD_CLIENT_ID}
CROWDSTRIKE_CYBERSECURITY_CLOUD_CLIENT_SECRET: ${CROWDSTRIKE_CYBERSECURITY_CLOUD_CLIENT_SECRET}
POSTHOG_HOST: ${POSTHOG_HOST}
POSTHOG_KEY: ${POSTHOG_KEY}
PH_TELEMETRY: ${PH_TELEMETRY}

restart: unless-stopped
ports:
Expand Down Expand Up @@ -276,22 +284,22 @@ services:
# volumes:
# - pgadmin-data:/var/lib/pgadmin

# ngrok:
# image: ngrok/ngrok:latest
# restart: always
# command:
# - "start"
# - "--all"
# - "--config"
# - "/etc/ngrok.yml"
# volumes:
# - ./ngrok.yml:/etc/ngrok.yml
# ports:
# - 4040:4040
# depends_on:
# api:
# condition: service_healthy
# network_mode: "host"
ngrok:
image: ngrok/ngrok:latest
restart: always
command:
- "start"
- "--all"
- "--config"
- "/etc/ngrok.yml"
volumes:
- ./ngrok.yml:/etc/ngrok.yml
ports:
- 4040:4040
depends_on:
api:
condition: service_healthy
network_mode: "host"

docs:
build:
Expand Down
Loading

0 comments on commit fe2a4f2

Please sign in to comment.