feat: 🚀 Docs V2 CI Script (#18560)

* switch to v2

* promote docv2

* remove on triggers
This commit is contained in:
Hugh A. Miles II 2022-02-02 13:02:51 -08:00 committed by GitHub
parent 70969821de
commit 9c3205b573
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
509 changed files with 5133 additions and 93411 deletions

View File

@ -1,31 +0,0 @@
name: Docs v2
on:
push:
paths:
- "docs-v2/**"
- .github/workflows/superset-docs-v2.yml
pull_request:
paths:
- "docs-v2/**"
- .github/workflows/superset-docs-v2.yml
jobs:
build-deploy:
name: Build & Deploy
runs-on: ubuntu-20.04
defaults:
run:
working-directory: docs-v2
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2
with:
persist-credentials: false
submodules: recursive
- name: yarn install
run: |
yarn install --immutable --immutable-cache --check-cache
- name: yarn build
run: |
yarn build

View File

@ -12,31 +12,28 @@ jobs:
build-deploy: build-deploy:
name: Build & Deploy name: Build & Deploy
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
defaults:
run:
working-directory: docs
steps: steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
persist-credentials: false persist-credentials: false
submodules: recursive submodules: recursive
- name: npm install - name: yarn install
working-directory: ./docs
run: | run: |
npm install yarn install --immutable --immutable-cache --check-cache
- name: lint - name: yarn build
working-directory: ./docs
run: | run: |
npm run lint yarn build
- name: gatsby build
working-directory: ./docs
run: |
npm run build
- name: deploy docs - name: deploy docs
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'
uses: ./.github/actions/github-action-push-to-another-repository uses: ./.github/actions/github-action-push-to-another-repository
env: env:
API_TOKEN_GITHUB: ${{ secrets.SUPERSET_SITE_BUILD }} API_TOKEN_GITHUB: ${{ secrets.SUPERSET_SITE_BUILD }}
with: with:
source-directory: './docs/public' source-directory: './docs/build'
destination-github-username: 'apache' destination-github-username: 'apache'
destination-repository-name: 'superset-site' destination-repository-name: 'superset-site'
target-branch: 'asf-site' target-branch: 'asf-site'

20
docs-v2/.gitignore vendored
View File

@ -1,20 +0,0 @@
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@ -1,5 +0,0 @@
{
"singleQuote": true,
"trailingComma": "all",
"arrowParens": "avoid"
}

View File

@ -1,52 +0,0 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Website
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
### Installation
```
$ yarn
```
### Local Development
```
$ yarn start
```
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
### Build
```
$ yarn build
```
This command generates static content into the `build` directory and can be served using any static contents hosting service.
### Deployment
```
$ GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

9797
docs-v2/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,58 +0,0 @@
{
"name": "docs-v-2",
"version": "0.0.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
},
"dependencies": {
"@ant-design/icons": "^4.7.0",
"@docusaurus/core": "2.0.0-beta.9",
"@docusaurus/plugin-client-redirects": "^2.0.0-beta.14",
"@docusaurus/preset-classic": "2.0.0-beta.9",
"@emotion/core": "^10.1.1",
"@emotion/styled": "^10.0.27",
"@mdx-js/react": "^1.6.21",
"@saucelabs/theme-github-codeblock": "^0.1.1",
"@superset-ui/style": "^0.14.23",
"@svgr/webpack": "^5.5.0",
"antd": "^4.8.0",
"buffer": "^6.0.3",
"clsx": "^1.1.1",
"file-loader": "^6.2.0",
"prism-react-renderer": "^1.2.1",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-github-btn": "^1.2.0",
"stream": "^0.0.2",
"swagger-ui-react": "^4.1.2",
"theme-ui": "^0.3.1",
"url-loader": "^4.1.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.0.0-beta.9",
"@tsconfig/docusaurus": "^1.0.4",
"typescript": "^4.3.5"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

View File

@ -1,119 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import React from 'react';
import styled from '@emotion/styled';
import { List } from 'antd';
import Layout from '@theme/Layout';
const links = [
[
'https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw',
'Slack',
'interact with other Superset users and community members',
],
[
'https://github.com/apache/superset',
'GitHub',
'create tickets to report issues, report bugs, and suggest new features',
],
[
'https://lists.apache.org/list.html?dev@superset.apache.org',
'dev@ Mailing List',
'participate in conversations with committers and contributors',
],
[
'https://stackoverflow.com/questions/tagged/superset+apache-superset',
'Stack Overflow',
'our growing knowledge base',
],
[
'https://www.meetup.com/Global-Apache-Superset-Community-Meetup/',
'Superset Meetup Group',
'join our monthly virtual meetups and register for any upcoming events',
],
[
'https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md',
'Organizations',
'a list of some of the organizations using Superset in production',
],
[
'https://github.com/apache-superset/awesome-apache-superset',
'Contributors Guide',
'Interested in contributing? Learn how to contribute and best practices',
],
];
const StyledMain = styled('main')`
padding-bottom: 60px;
padding-left: 16px;
padding-right: 16px;
section {
width: 100%;
max-width: 800px;
margin: 0 auto;
padding: 60px 0 0 0;
font-size: 17px;
&:first-of-type{
padding: 40px;
background-image: linear-gradient(120deg, #d6f2f8, #52c6e3);
border-radius: 0 0 10px;
}
}
`;
const StyledGetInvolved = styled('div')`
margin-bottom: 25px;
`;
const Community = () => {
return (
<Layout
title="Community"
description="Community website for Apache Superset, a data visualization and data exploration platform"
>
<StyledMain>
<section>
<h1 className="title">Community</h1>
Get involved in our welcoming, fast growing community!
</section>
<section className="joinCommunity">
<StyledGetInvolved>
<h2>Get involved!</h2>
<List
size="small"
bordered
dataSource={links}
renderItem={([href, link, post]) => (
<List.Item>
<a href={href}>{link}</a>
{' '}
-
{' '}
{post}
</List.Item>
)}
/>
</StyledGetInvolved>
</section>
</StyledMain>
</Layout>
);
};
export default Community;

View File

@ -1,463 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import React, { useRef, useState } from 'react';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import {
Button, Col, Row, Carousel,
} from 'antd';
import styled from '@emotion/styled';
import { supersetTheme } from '@superset-ui/style';
import {
DeploymentUnitOutlined,
FireOutlined,
DotChartOutlined,
DatabaseOutlined,
} from '@ant-design/icons';
import GitHubButton from 'react-github-btn';
import 'antd/dist/antd.css';
import { mq } from '../utils';
import { Databases } from '../resources/data';
const { colors } = supersetTheme;
const StyledMain = styled('main')`
text-align: center;
.alert-color {
color: ${colors.alert.base};
}
.error-color {
color: ${colors.error.base};
}
.warning-color {
color: ${colors.warning.base};
}
.info-color {
color: ${colors.info.base};
}
.success-color {
color: ${colors.success.base};
}
.secondary-color {
color: ${colors.secondary.base};
}
.info-text {
font-size: 32px;
font-weight: normal;
max-width: 600px;
margin: auto;
}
.info-text-smaller {
font-size: 24px;
max-width: 800px;
}
`;
const StyledTitleContainer = styled('div')`
position: relative;
padding-top: 60px;
padding-bottom: 80px;
padding-left: 20px;
padding-right: 20px;
background-image: url('img/data-point.jpg');
background-size: cover;
background-position-x: right;
.github-section {
margin-bottom: 40px;
margin-top: 40px;
.github-button {
margin: 5px;
}
}
.logo-horiz {
margin-top: 20px;
margin-bottom: 20px;
width: 600px;
max-width: 100%;
${[mq[3]]} {
width: 550px;
}
${[mq[2]]} {
width: 450px;
}
${[mq[1]]} {
width: 425px;
}
${[mq[0]]} {
width: 400px;
}
}
.alert {
color: #0c5460;
background-color: #d1ecf1;
border-color: #bee5eb;
max-width: 600px;
margin: 0 auto;
padding: 0.75rem 1.25rem;
margin-top: 83px;
border: 1px solid transparent;
border-radius: 0.25rem;
}
`;
const StyledHeading = styled('h2')`
font-size: 55px;
text-align: center;
`;
const StyledFeatures = styled('div')`
background: #fff;
padding: 5vw 0;
margin-top: 0px;
margin-bottom: 30px;
.featureList {
padding: 40px;
width: 100%;
list-style-type: none;
margin: 0 auto;
max-width: 1000px;
.feature {
padding: 20px;
text-align: center;
margin-bottom: 40px;
.imagePlaceHolder {
svg {
width: 70px;
height: 70px;
}
margin-bottom: 15px;
}
.featureText {
color: ${colors.grayscale.dark2};
font-size: 16px;
strong {
font-size: 22px;
}
}
}
}
.heading {
font-size: 22px;
margin: 0 auto;
text-align: center;
}
`;
const StyledIntegrations = styled('div')`
background: white;
margin-bottom: 64px;
.databaseSub {
text-align: center;
display: block;
margin-bottom: 40px;
font-size: 18px;
}
.database-list {
margin-top: 100px;
list-style-type: none;
padding: 0px;
max-width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-bottom: 50px;
li {
padding: 15px;
}
}
`;
const CarouselSection = styled('div')`
.toggleContainer {
display: flex;
flex-direction: column;
margin-bottom: 100px;
position: relative;
.toggleBtns {
display: flex;
flex-direction: row;
/* ${[mq[0]]} {
flex-direction: column;
} */
justify-content: center;
.toggle {
margin: 10px;
color: #666;
border: 1px solid #888;
background-color: #20a7c911;
border-radius: 3px;
padding: 16px;
transition: all 0.25s;
overflow: visible;
${[mq[0]]} {
> span {
display: none;
position: absolute;
bottom: 0px;
left: 50%;
width: 100%;
transform: translate(-50%, 100%);
}
h2 {
font-size: 14px;
margin: 0;
}
}
&:hover {
cursor: pointer;
color: ${colors.primary.base};
border: 1px solid ${colors.primary.base};
}
&.active {
background: red;
background: #20a7c933;
${[mq[0]]} {
> span {
display: block;
}
}
}
}
}
.imageContainer {
img {
margin: 0 auto;
width: 80%;
box-shadow: 0 0 3px #aaa;
margin-top: 5px;
margin-bottom: 5px;
}
}
}
`;
interface featureProps {
icon: React.ReactNode,
title: string,
descr: string,
}
const Feature = ({ icon, title, descr }: featureProps) => (
<li className="feature">
<div className="imagePlaceHolder">
{icon}
</div>
<div className="featureText">
<h3>{title}</h3>
{descr}
</div>
</li>
);
export default function Home(): JSX.Element {
const slider = useRef(null);
const [slideIndex, setSlideIndex] = useState(0);
const onChange = (index) => {
setSlideIndex(index);
};
return (
<Layout
title="Welcome"
description="Community website for Apache Superset, a data visualization and data exploration platform"
>
<StyledMain>
<StyledTitleContainer>
<img className="logo-horiz" src="img/superset-logo-horiz-apache.svg" alt="logo-horiz" />
<div className="info-text">
Apache Superset is a modern data exploration and visualization
platform
</div>
<div className="github-section">
<span className="github-button">
<GitHubButton
href="https://github.com/apache/superset"
data-size="large"
data-show-count="true"
aria-label="Star apache/superset on GitHub"
>
Star
</GitHubButton>
</span>
<span className="github-button">
<GitHubButton
href="https://github.com/apache/superset/subscription"
data-size="large"
data-show-count="true"
aria-label="Watch apache/superset on GitHub"
>
Watch
</GitHubButton>
</span>
<span className="github-button">
<GitHubButton
href="https://github.com/apache/superset/fork"
data-size="large"
data-show-count="true"
aria-label="Fork apache/superset on GitHub"
>
Fork
</GitHubButton>
</span>
</div>
<div>
<Link to="/docs/intro">
<Button type="primary">
Get Started
</Button>
</Link>
</div>
</StyledTitleContainer>
<StyledFeatures>
<StyledHeading>Overview</StyledHeading>
<div className="info-text info-text-smaller">
Superset is fast, lightweight, intuitive, and loaded with options
that make it easy for users of all skill sets to explore and
visualize their data, from simple line charts to highly detailed
geospatial charts.
</div>
<ul className="featureList ant-row">
<Row>
<Col sm={24} md={12}>
<Feature
icon={<FireOutlined className="warning-color" />}
title="Powerful yet easy to use"
descr={`
Quickly and easily integrate and explore your data, using
either our simple no-code viz builder or state of the art SQL
IDE.
`}
/>
</Col>
<Col sm={24} md={12}>
<Feature
icon={<DatabaseOutlined className="info-color" />}
title="Integrates with modern databases"
descr={`
Superset can connect to any SQL based datasource
through SQLAlchemy, including modern cloud native databases
and engines at petabyte scale.
`}
/>
</Col>
</Row>
<Row>
<Col sm={24} md={12}>
<Feature
icon={<DeploymentUnitOutlined className="success-color" />}
title="Modern architecture"
descr={`
Superset is lightweight and highly scalable, leveraging the
power of your existing data infrastructure without requiring
yet another ingestion layer.
`}
/>
</Col>
<Col sm={24} md={12}>
<Feature
icon={<DotChartOutlined className="alert-color" />}
title="Rich visualizations and dashboards"
descr={`
Superset ships with a wide array of beautiful visualizations.
Our visualization plug-in architecture makes it easy to build
custom visualizations that drop directly into Superset.
`}
/>
</Col>
</Row>
</ul>
</StyledFeatures>
<CarouselSection>
<StyledHeading>Explore</StyledHeading>
<div className="toggleContainer">
<div className="toggleBtns">
<div
className={`toggle ${slideIndex === 0 ? 'active' : null}`}
onClick={() => slider.current.goTo(0)}
role="button"
>
<h2>Explore</h2>
<span>
Explore your data using the array of data visualizations.
</span>
</div>
<div
className={`toggle ${slideIndex === 1 ? 'active' : null}`}
onClick={() => slider.current.goTo(1)}
role="button"
>
<h2>View</h2>
<span>View your data through interactive dashboards</span>
</div>
<div
className={`toggle ${slideIndex === 2 ? 'active' : null}`}
onClick={() => slider.current.goTo(2)}
role="button"
>
<h2>Investigate</h2>
<span>Use SQL Lab to write queries to explore your data</span>
</div>
</div>
<Carousel ref={slider} effect="scrollx" afterChange={onChange}>
<div className="imageContainer">
<img src="img/explorer5.jpg" alt="" />
</div>
<div className="imageContainer">
<img src="img/dashboard3.png" alt="" />
</div>
<div className="imageContainer">
<img src="img/sqllab5.jpg" alt="" />
</div>
</Carousel>
</div>
<StyledIntegrations>
<StyledHeading>Supported Databases</StyledHeading>
<ul className="database-list">
{Databases.map(
({
title, imgName: imageName, width, height,
}) => (
<li>
<img src={`img/databases/${imageName}`} width={width} height={height || 50} title={title} />
</li>
),
)}
</ul>
<span className="databaseSub">
... and many other
<a href="docs/connecting-to-databases/installing-database-drivers">
{' '}
compatible databases
{' '}
</a>
</span>
</StyledIntegrations>
</CarouselSection>
</StyledMain>
</Layout>
);
}

View File

@ -1,136 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
export const Databases = [
{
title: 'Amazon Redshfit',
href: 'https://aws.amazon.com/redshift/',
imgName: 'aws-redshift.png',
},
{
title: 'Apache Druid',
href: 'http://druid.io/',
imgName: 'druid.png',
},
{
title: 'Apache Kylin',
href: 'http://kylin.apache.org/',
imgName: 'apache-kylin.png',
},
{
title: 'BigQuery',
href: 'https://cloud.google.com/bigquery/',
imgName: 'googleBQ.png',
},
{
title: 'ClickHouse',
href: 'https://clickhouse.tech/',
imgName: 'clickhouse.png',
},
{
title: 'Dremio',
href: 'https://dremio.com/',
imgName: 'dremio.png',
},
{
title: 'Exasol',
href: 'https://www.exasol.com/en/',
imgName: 'exasol.png',
},
{
title: 'FireBirdSql',
href: 'https://firebirdsql.org/',
imgName: 'firebird.png',
},
{
title: 'Green Plum',
href: 'https://greenplum.org/',
imgName: 'greenplum.png',
},
{
title: 'IBM Db2',
href: 'https://www.ibm.com/analytics/db2',
imgName: 'ibmdb2.png',
},
{
title: 'MySQL',
href: 'https://www.mysql.com/',
imgName: 'mysql.png',
},
{
title: 'Microsoft SqlServer',
href: 'https://www.microsoft.com/en-us/sql-server',
imgName: 'msql.png',
},
{
title: 'MonetDB',
href: 'https://www.monetdb.org/',
imgName: 'monet.png',
},
{
title: 'Oracle',
href: 'https://www.oracle.com/database/',
imgName: 'oraclelogo.png',
},
{
title: 'PostgresSQL',
href: 'https://www.postgresql.org/',
imgName: 'postsql.png',
},
{
title: 'Presto',
href: 'https://prestodb.io/',
imgName: 'presto-og.png',
},
{
title: 'Snowflake',
href: 'https://www.snowflake.com/',
imgName: 'snowflake.png',
},
{
title: 'SQLite',
href: 'https://www.sqlite.org/index.html',
imgName: 'sqllite.png',
},
{
title: 'Trino',
href: 'https://trino.io/',
imgName: 'trino2.jpg',
},
{
title: 'Rockset',
href: 'https://rockset.com/',
imgName: 'rockset.png',
},
{
title: 'Vertica',
href: 'https://www.vertica.com/',
imgName: 'vertica.png',
},
{
title: 'Hologres',
href: 'https://www.alibabacloud.com/product/hologres',
imgName: 'hologres.png',
},
{
title: 'IBM Netezza Performance Server',
href: 'https://www.ibm.com/products/netezza',
imgName: 'netezza.png',
},
];

View File

@ -1,22 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const breakpoints = [576, 768, 992, 1200];
export const mq = breakpoints.map((bp) => `@media (max-width: ${bp}px)`);

View File

@ -1,22 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
publish:
whoami: asf-site
staging:
whoami: asf-site

View File

@ -1,48 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
module.exports = {
parser: 'babel-eslint',
rules: {
strict: 0,
'react/jsx-filename-extension': [
2,
{ extensions: ['.js', '.jsx', '.ts', '.tsx'] },
],
'import/extensions': 'off',
'react/jsx-props-no-spreading': 'off',
'jsx-a11y/click-events-have-key-events': 'off',
'jsx-a11y/iframe-has-title': 'off',
'jsx-a11y/interactive-supports-focus': 'off',
'react-hooks/rules-of-hooks': 'off',
'jsx-a11y/no-noninteractive-element-interactions': 'off',
},
extends: ['airbnb', 'airbnb/hooks'],
env: {
browser: true,
node: true,
jasmine: true,
},
settings: {
'import/resolver': {
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
},
},
};

23
docs/.gitignore vendored
View File

@ -1,3 +1,20 @@
.docz # Dependencies
.cache /node_modules
public
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@ -1,23 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://superset.apache.org/$1 [R,L]
RewriteCond %{HTTP_HOST} ^superset.incubator.apache.org$ [NC]
RewriteRule ^(.*)$ https://superset.apache.org/$1 [R=301,L]

View File

@ -1 +0,0 @@
v12

View File

@ -17,53 +17,36 @@ specific language governing permissions and limitations
under the License. under the License.
--> -->
Here's the source to the documentation hosted at # Website
<a href="https://superset.apache.org">superset.apache.org</a>
The site runs on the Gatsby framework and uses docz for it's This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
`Documentation` subsection.
## Getting Started ### Installation
```bash ```
cd docs/ $ yarn
npm install
npm run start
# navigate to localhost:8000`
``` ```
## To Publish ### Local Development
Github Actions CI automatically publishes the site after changes are
merged to master.
To manually publish, the static site that Gatsby generates needs to be pushed
to the `asf-site` branch on the
[apache/superset-site](https://github.com/apache/superset-site/)
repository. No need to PR here, simply `git push`.
```bash
# Get in the docs/ folder in the main repo
cd ~/repos/superset/docs
# have Gatsby build the static website, this puts in under `docs/public`
npm run build
# go to the docs repo
cd ~/repos/superset-site
# checkout the proper branch
git checkout asf-site
# BE CAREFUL WITH THIS COMMAND
# wipe the content of the repo
rm -rf *
# copy the static site here
cp -r ~/repos/superset/docs/public/ ./
# git push
git add .
git commit -m "relevant commit msg"
git push origin asf-site
# SUCCESS - it should take minutes to take effect on superset.apache.org
``` ```
$ yarn start
```
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
### Build
```
$ yarn build
```
This command generates static content into the `build` directory and can be served using any static contents hosting service.
### Deployment
```
$ GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

View File

@ -1,36 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
export default {
title: 'superset doc',
base: '/docs',
ignore: ['**/blog/**', 'readme.md'],
files: ['src/**/*.{md,markdown,mdx}'],
menu: [
'Introduction',
'Installation and Configuration',
'Connecting to Databases',
'Creating Charts and Dashboards',
'Miscellaneous',
'Contributing',
'Frequently Asked Questions',
'Roadmap',
'API',
'Security',
],
};

View File

@ -1,85 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
module.exports = {
siteMetadata: {
title: `Superset`,
description: `Community website for Apache Superset, a data visualization and data exploration platform`,
author: `@apache-superset`,
},
plugins: [
`gatsby-plugin-sass`,
`gatsby-theme-docz`,
`gatsby-plugin-react-helmet`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-plugin-google-fonts`,
options: {
fonts: [
`Inter`,
`source sans pro\:300,400,400i,700`, // you can also specify font weights and styles
],
display: 'swap',
},
},
{
resolve: 'gatsby-plugin-eslint',
options: {
test: /\.js$|\.jsx$/,
exclude: /(node_modules|.cache|public|gatsby-config.js)/,
stages: ['develop'],
options: {
emitWarning: true,
failOnError: false,
},
},
},
'gatsby-plugin-antd',
'gatsby-plugin-emotion',
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
},
},
`gatsby-plugin-client-side-redirect`,
{
resolve: `gatsby-plugin-gtag`,
options: {
// your google analytics tracking id
trackingId: `G-133LHD3B3N`,
// Puts tracking script in the head instead of the body
head: false,
// enable ip anonymization
anonymize: true,
},
},
'gatsby-plugin-remove-serviceworker',
],
};

View File

@ -1,677 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
exports.createPages = ({ actions }) => {
const { createRedirect } = actions; //actions is collection of many actions - https://www.gatsbyjs.org/docs/actions
createRedirect({
fromPath: '/installation.html',
toPath: '/docs/installation/installing-superset-using-docker-compose',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#getting-started',
toPath: '/docs/installation/installing-superset-using-docker-compose',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#cloud-native',
toPath: '/docs/installation/installing-superset-using-docker-compose',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#start-with-docker',
toPath: '/docs/installation/installing-superset-using-docker-compose',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#os-dependencies',
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#python-virtualenv',
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#python-s-setup-tools-and-pip',
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#superset-installation-and-initialization',
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#a-proper-wsgi-http-server',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#flask-appbuilder-permissions',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#configuration-behind-a-load-balancer',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#configuration',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#database-dependencies',
toPath: '/docs/databases/installing-database-drivers',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#hana',
toPath: '/docs/databases/hana',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#aws-athena',
toPath: '/docs/databases/athena',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#google-bigquery',
toPath: '/docs/databases/bigquery',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#elasticsearch',
toPath: '/docs/databases/elasticsearch',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#snowflake',
toPath: '/docs/databases/snowflake',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#teradata',
toPath: '/docs/databases/teradata',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#apache-drill',
toPath: '/docs/databases/drill',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#caching',
toPath: '/docs/installation/cache',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#deeper-sqlalchemy-integration',
toPath: '/docs/databases/extra-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#schemas-postgres-redshift',
toPath: '/docs/databases/extra-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#external-password-store-for-sqlalchemy-connections',
toPath: '/docs/databases/extra-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#ssl-access-to-databases',
toPath: '/docs/databases/extra-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#druid',
toPath: '/docs/databases/druid',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#presto',
toPath: '/docs/databases/presto',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#exasol',
toPath: '/docs/databases/exasol',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#cors',
toPath: '/docs/installation/networking-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#domain-sharding',
toPath: '/docs/installation/networking-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#middleware',
toPath: '/docs/installation/networking-settings',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#event-logging',
toPath: '/docs/installation/event-logging',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#upgrading',
toPath: '/docs/installation/upgrading-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#celery-tasks',
toPath: '/docs/installation/async-queries-celery',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#email-reports',
toPath: '/docs/installation/email-reports',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#sql-lab',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#celery-flower',
toPath: '/docs/installation/async-queries-celery',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#building-from-source',
toPath: '/docs/contributing/contribution-guidelines',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#blueprints',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#statsd-logging',
toPath: '/docs/installation/event-logging',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#install-superset-with-helm-in-kubernetes',
toPath: '/docs/installation/installing-superset-from-scratch',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#custom-oauth2-configuration',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#feature-flags',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/installation.html#sip-15',
toPath: '/docs/installation/configuring-superset',
isPermanent: true,
});
createRedirect({
fromPath: '/tutorials.html',
toPath: '/docs/intro',
isPermanent: true,
});
createRedirect({
fromPath: '/admintutorial.html',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/admintutorial.html#connecting-to-a-new-database',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/admintutorial.html#adding-a-new-table',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/admintutorial.html#exploring-your-data',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/admintutorial.html#creating-a-slice-and-dashboard',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#enabling-upload-a-csv-functionality',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#obtaining-and-loading-the-data',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#table-visualization',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#dashboard-basics',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#pivot-table',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#line-chart',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#markup',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#filter-box',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#native-filters',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#publishing-your-dashboard',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#taking-your-dashboard-further',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#annotations',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#advanced-analytics',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#setting-up-the-base-chart',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#rolling-mean',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#time-comparison',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/usertutorial.html#resampling-the-data',
toPath: '/docs/creating-charts-dashboards/exploring-data',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#provided-roles',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#admin',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#alpha',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#gamma',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#sql-lab',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#public',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#managing-gamma-per-data-source-access',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#customizing',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#permissions',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/security.html#restricting-access-to-a-subset-of-data-sources',
toPath: '/docs/security',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html#feature-overview',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html#extra-features',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html#templating-with-jinja',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html#available-macros',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html#extending-macros',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/sqllab.html#query-cost-estimation',
toPath: '/docs/installation/sql-templating',
isPermanent: true,
});
createRedirect({
fromPath: '/gallery.html',
toPath: '/docs/intro',
isPermanent: true,
});
createRedirect({
fromPath: '/druid.html',
toPath: '/docs/databases/druid',
isPermanent: true,
});
createRedirect({
fromPath: '/druid.html#aggregations',
toPath: '/docs/databases/druid',
isPermanent: true,
});
createRedirect({
fromPath: '/druid.html#post-aggregations',
toPath: '/docs/databases/druid',
isPermanent: true,
});
createRedirect({
fromPath: '/druid.html#unsupported-features',
toPath: '/docs/databases/druid',
isPermanent: true,
});
createRedirect({
fromPath: '/misc.html',
toPath: '/docs/miscellaneous/country-map-tools',
isPermanent: true,
});
createRedirect({
fromPath: '/visualization.html',
toPath: '/docs/miscellaneous/country-map-tools',
isPermanent: true,
});
createRedirect({
fromPath: '/visualization.html#country-map-tools',
toPath: '/docs/miscellaneous/country-map-tools',
isPermanent: true,
});
createRedirect({
fromPath: '/visualization.html#list-of-countries',
toPath: '/docs/miscellaneous/country-map-tools',
isPermanent: true,
});
createRedirect({
fromPath: '/visualization.html#need-to-add-a-new-country',
toPath: '/docs/miscellaneous/country-map-tools',
isPermanent: true,
});
createRedirect({
fromPath: '/videos.html',
toPath: '/resources',
isPermanent: true,
});
createRedirect({
fromPath: '/import_export_datasources.html#exporting-datasources-to-yaml',
toPath: '/docs/miscellaneous/importing-exporting-datasources',
isPermanent: true,
});
createRedirect({
fromPath: '/import_export_datasources.html#exporting-the-complete-supported-yaml-schema',
toPath: '/docs/miscellaneous/importing-exporting-datasources',
isPermanent: true,
});
createRedirect({
fromPath: '/import_export_datasources.html#importing-datasources-from-yaml',
toPath: '/docs/miscellaneous/importing-exporting-datasources',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#can-i-query-join-multiple-tables-at-one-time',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-big-can-my-data-source-be',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-do-i-create-my-own-visualization',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#can-i-upload-and-visualize-csv-data',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#why-are-my-queries-timing-out',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#why-is-the-map-not-visible-in-the-mapbox-visualization',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-to-add-dynamic-filters-to-a-dashboard',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-to-limit-the-timed-refresh-on-a-dashboard',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#why-does-flask-fab-or-superset-freezed-hung-not-responding-when-started-my-home-directory-is-nfs-mounted',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#what-if-the-table-schema-changed',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-do-i-go-about-developing-a-new-visualization-type',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#what-database-engine-can-i-use-as-a-backend-for-superset',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-can-i-configure-oauth-authentication-and-authorization',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#how-can-i-set-a-default-filter-on-my-dashboard',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: 'faq.html#how-do-i-get-superset-to-refresh-the-schema-of-my-table',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#is-there-a-way-to-force-the-use-specific-colors',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/faq.html#does-superset-work-with-insert-database-engine-here',
toPath: '/docs/frequently-asked-questions',
isPermanent: true,
});
createRedirect({
fromPath: '/index.html',
toPath: '/docs/intro',
isPermanent: true,
});
createRedirect({
fromPath: '/tutorial.html',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/tutorial.html#connecting-to-a-new-database',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/tutorial.html#adding-a-new-table',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/tutorial.html#exploring-your-data',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/tutorial.html#creating-a-slice-and-dashboard',
toPath: '/docs/creating-charts-dashboards/first-dashboard',
isPermanent: true,
});
createRedirect({
fromPath: '/issue_code_reference.html#issue-1000',
toPath: '/docs/miscellaneous/issue-codes#issue-1000',
isPermanent: true,
});
createRedirect({
fromPath: '/issue_code_reference.html#issue-1001',
toPath: '/docs/miscellaneous/issue-codes#issue-1001',
isPermanent: true,
});
createRedirect({
fromPath: '/issue_code_reference.html#issue-1002',
toPath: '/docs/miscellaneous/issue-codes#issue-1002',
isPermanent: true,
});
createRedirect({
fromPath: '/issue_code_reference.html#issue-1003',
toPath: '/docs/miscellaneous/issue-codes#issue-1003',
isPermanent: true,
});
createRedirect({
fromPath: '/issue_code_reference.html#issue-1004',
toPath: '/docs/miscellaneous/issue-codes#issue-1004',
isPermanent: true,
});
createRedirect({
fromPath: '/issue_code_reference.html#issue-1005',
toPath: '/docs/miscellaneous/issue-codes#issue-1005',
isPermanent: true,
});
createRedirect({
fromPath: '/docs/installation/email-reports',
toPath: '/docs/installation/alerts-reports',
isPermanent: true,
});
};

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More