Skip to content

Commit

Permalink
Merge branch 'main' into feat/cursor-field-based-incremental-refresh
Browse files Browse the repository at this point in the history
  • Loading branch information
afthabvp committed Apr 15, 2024
2 parents 69fc82f + 8cb7640 commit 6664a34
Show file tree
Hide file tree
Showing 19 changed files with 101 additions and 39 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/deploy-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Deploy main

on:
push:
branches:
- main
paths:
- "ui/**"
- "server/**"

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Set up SSH key
env:
SSH_KEY_BASE64: ${{ secrets.SSH_KEY_BASE64 }}
run: |
echo "$SSH_KEY_BASE64" | base64 --decode > ${HOME}/multiwoven-deployments.pem
chmod 600 ${HOME}/multiwoven-deployments.pem
- name: Deploy main
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
run: |
ssh -o StrictHostKeyChecking=no -i ${HOME}/multiwoven-deployments.pem $SSH_USER@$SSH_HOST << 'EOF'
cd multiwoven
git pull origin main
docker-compose down
docker-compose up -d --build
EOF
14 changes: 1 addition & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,7 @@ We use GitHub to host code, to track issues and feature requests, as well as acc

## We Use [GitHub Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests

Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:

Based on your contribution, please create a pull request in the respective repository. For example, if you are contributing to the `multiwoven-integrations` repository, please create a pull request in the `multiwoven-integrations` repository.

- Multiwoven Server: [pull requests](https://github.com/Multiwoven/multiwoven-server)
- Multiwoven Integrations: [pull requests](https://github.com/Multiwoven/multiwoven-integrations)
- Multiwoven UI: [pull requests](https://github.com/Multiwoven/multiwoven-ui)
Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests.

1. Fork the repo and create your branch from `main`.
2. If you've added code that should be tested, add tests.
Expand All @@ -35,12 +29,6 @@ In short, when you submit code changes, your submissions are understood to be un
## Report bugs using GitHub's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue it's that easy!

Since we are a mono repo, we insist creating issues in respective repositories. For example, if you find a bug in the `multiwoven-integrations` repository, please create an issue in the `multiwoven-integrations` repository.

- Multiwoven Server: [issues](https://github.com/Multiwoven/multiwoven-server)
- Multiwoven Integrations: [issues](https://github.com/Multiwoven/multiwoven-integrations)
- Multiwoven UI: [issues](https://github.com/Multiwoven/multiwoven-ui)

## Write bug reports with detail, background, and sample code

Great Bug Reports tend to have:
Expand Down
23 changes: 17 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ Turns any data warehouse (like Snowflake, Redshift, BigQuery, DataBricks, Postgr
<a href="https://github.com/Multiwoven/multiwoven/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/Multiwoven/multiwoven/main?style=for-the-badge"></a>
<a href="https://github.com/Multiwoven/multiwoven/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Multiwoven/multiwoven?style=for-the-badge" alt="License"></a>
<br />
<a href="https://github.com/Multiwoven/multiwoven-server/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Multiwoven/multiwoven-server/ci.yml?style=for-the-badge&label=server-build" alt="server-ci"></a>
<a href="https://github.com/Multiwoven/multiwoven-integrations/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Multiwoven/multiwoven-integrations/ci.yml?style=for-the-badge&label=integrations-build" alt="integrations-ci"></a>
<a href="https://github.com/Multiwoven/multiwoven-ui/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Multiwoven/multiwoven-ui/ci.yml?style=for-the-badge&label=ui-build" alt="ui-ci"></a>
<a href="https://github.com/Multiwoven/multiwoven/actions/workflows/server-ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Multiwoven/multiwoven/server-ci.yml?branch=main&style=for-the-badge&label=server-build" alt="server-ci"></a>
<a href="https://github.com/Multiwoven/multiwoven/actions/workflows/integrations-ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Multiwoven/multiwoven/integrations-ci.yml?branch=main&style=for-the-badge&label=integrations-build" alt="integrations-ci"></a>
<a href="https://github.com/Multiwoven/multiwoven/actions/workflows/ui-ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Multiwoven/multiwoven/ui-ci.yml?branch=main&style=for-the-badge&label=ui-build" alt="ui-ci"></a>
</p>

<p align="center">
Expand Down Expand Up @@ -53,25 +53,36 @@ Multiwoven makes it easy to self-host and deploy a fully secure, scalable, and c

## Table of Contents

- [Why Multiwoven?](#why-multiwoven)
- [Table of Contents](#table-of-contents)
- [Getting Started](#getting-started)
- [Local Setup](#local-setup)
- [Self-hosted Options](#self-hosted-options)
- [Connectors](#connectors)
- [Sources](#sources)
- [Destinations](#destinations)
- [CRM](#crm)
- [Marketing Automation](#marketing-automation)
- [Customer Support](#customer-support)
- [Advertising](#advertising)
- [Collaboration](#collaboration)
- [Analytics](#analytics)
- [Others](#others)
- [Contributing](#contributing)
- [Need Help?](#need-help)
- [⚠️ Development Status: Under Active Development](#️-development-status-under-active-development)
- [License](#license)
- [Contributors](#contributors)

## Getting Started

Multiwoven repo is a monorepo that contains the following services:

- [multiwoven-server](https://github.com/Multiwoven/multiwoven-server) - The backend service that handles data extraction, modeling, and syncing.
- [multiwoven-server](https://github.com/Multiwoven/multiwoven/tree/main/server) - The backend service that handles data extraction, modeling, and syncing.

- [multiwoven-ui](https://github.com/Multiwoven/multiwoven-ui) - The frontend service that provides a user interface for managing data sources, models, and syncs.
- [multiwoven-ui](https://github.com/Multiwoven/multiwoven/tree/main/ui) - The frontend service that provides a user interface for managing data sources, models, and syncs.

- [multiwoven-integrations](https://github.com/Multiwoven/multiwoven-integrations) - The connector service that provides a list of connectors to various data sources and destinations.
- [multiwoven-integrations](https://github.com/Multiwoven/multiwoven/tree/main/integrations) - The connector service that provides a list of connectors to various data sources and destinations.

### Local Setup

Expand Down
2 changes: 1 addition & 1 deletion integrations/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ GIT
PATH
remote: .
specs:
multiwoven-integrations (0.1.56)
multiwoven-integrations (0.1.57)
activesupport
async-websocket
csv
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def connector_spec
def meta_data
client_meta_data = read_json(META_DATA_PATH).deep_symbolize_keys
icon_name = client_meta_data[:data][:icon]
icon_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{MAIN_BRANCH_SHA}#{relative_path}/#{icon_name}"
icon_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations#{relative_path}/#{icon_name}"
client_meta_data[:data][:icon] = icon_url
# returns hash
@meta_data ||= client_meta_data
Expand Down
5 changes: 0 additions & 5 deletions integrations/lib/multiwoven/integrations/core/constants.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,11 @@ module Multiwoven
module Integrations::Core
module Constants
# CONFIG
INTEGRATIONS_PATH = File.join(
Gem.loaded_specs["multiwoven-integrations"].full_gem_path,
"/lib/multiwoven/integrations"
)
META_DATA_PATH = "config/meta.json"
CONNECTOR_SPEC_PATH = "config/spec.json"
CATALOG_SPEC_PATH = "config/catalog.json"
SNOWFLAKE_MAC_DRIVER_PATH = "/opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib"
DATABRICKS_MAC_DRIVER_PATH = "/Library/simba/spark/lib/libsparkodbc_sb64-universal.dylib"
MAIN_BRANCH_SHA = Git.ls_remote("https://github.com/Multiwoven/multiwoven-integrations")["head"][:sha]

SNOWFLAKE_DRIVER_PATH = ENV["SNOWFLAKE_DRIVER_PATH"] || SNOWFLAKE_MAC_DRIVER_PATH
DATABRICKS_DRIVER_PATH = ENV["DATABRICKS_DRIVER_PATH"] || DATABRICKS_MAC_DRIVER_PATH
Expand Down
2 changes: 1 addition & 1 deletion integrations/lib/multiwoven/integrations/rollout.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

module Multiwoven
module Integrations
VERSION = "0.1.56"
VERSION = "0.1.57"

ENABLED_SOURCES = %w[
Snowflake
Expand Down
6 changes: 3 additions & 3 deletions integrations/multiwoven-integrations.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = ">= 2.6.0"

# spec.metadata["allowed_push_host"] = nil
spec.metadata["github_repo"] = "https://github.com/Multiwoven/multiwoven-integrations"
spec.metadata["github_repo"] = "https://github.com/Multiwoven/multiwoven"
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = "https://github.com/Multiwoven/multiwoven-integrations"
spec.metadata["changelog_uri"] = "https://github.com/Multiwoven/multiwoven-integrations/blob/master/CHANGELOG.md"
spec.metadata["source_code_uri"] = "https://github.com/Multiwoven/multiwoven/tree/main/integrations"
spec.metadata["changelog_uri"] = "https://github.com/Multiwoven/multiwoven/blob/main/integrations/CHANGELOG.md"

# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/destination/google_sheets/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/destination/google_sheets/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/destination/hubspot/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/destination/hubspot/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/destination/salesforce_consumer_goods_cloud/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/destination/salesforce_consumer_goods_cloud/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/destination/salesforce_crm/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/destination/salesforce_crm/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/destination/sftp/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/destination/sftp/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/destination/stripe/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/destination/stripe/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@

describe "#meta_data" do
it "serves it github image url as icon" do
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{client.class::MAIN_BRANCH_SHA}/lib/multiwoven/integrations/source/salesforce_consumer_goods_cloud/icon.svg"
image_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven/main/integrations/lib/multiwoven/integrations/source/salesforce_consumer_goods_cloud/icon.svg"
expect(client.send(:meta_data)[:data][:icon]).to eq(image_url)
end
end
Expand Down
28 changes: 26 additions & 2 deletions ui/src/components/Table/Table.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Box, Flex, Table, Tbody, Td, Text, Th, Thead, Tr } from '@chakra-ui/react';
import { Box, Flex, Table, Tbody, Td, Text, Th, Thead, Tr, Tooltip } from '@chakra-ui/react';
import { TableType } from './types';
import EntityItem from '../EntityItem';
import { FiInfo } from 'react-icons/fi';

const GenerateTable = ({
title,
Expand Down Expand Up @@ -35,7 +36,30 @@ const GenerateTable = ({
padding='16px'
letterSpacing='2.4px'
>
{column.name}
<Box display='flex' flexDir='row' gap='6px' alignItems='center'>
{column.name}
{column.hasHoverText ? (
<>
<Tooltip
hasArrow
label={column.hoverText}
fontSize='xs'
placement='top'
backgroundColor='black.500'
color='gray.100'
borderRadius='6px'
padding='8px'
width='auto'
>
<Text color='gray.600'>
<FiInfo />
</Text>
</Tooltip>
</>
) : (
<></>
)}
</Box>
</Th>
))}
</Tr>
Expand Down
2 changes: 2 additions & 0 deletions ui/src/utils/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ export type ColumnMapType = {
name: string;
key: string;
showIcon?: boolean;
hasHoverText?: boolean;
hoverText?: string;
};
5 changes: 5 additions & 0 deletions ui/src/views/Activate/Syncs/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,15 @@ export const SYNC_RUNS_COLUMNS: SyncRunsColumnEntity[] = [
{
key: 'rows_queried',
name: 'Rows Queried',
hasHoverText: true,
hoverText: 'Number of rows your query returned from the Source.',
},
{
key: 'results',
name: 'Results',
hasHoverText: true,
hoverText:
'Number of successful or failed operations that occurred while processing your sync.',
},
];

Expand Down
2 changes: 2 additions & 0 deletions ui/src/views/Activate/Syncs/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ export type SyncRunsColumnFields =
export type SyncRunsColumnEntity = {
key: SyncRunsColumnFields;
name: string;
hasHoverText?: boolean;
hoverText?: string;
};

export type SyncRecordResponse = {
Expand Down

0 comments on commit 6664a34

Please sign in to comment.