ryanahamilton commented on a change in pull request #15007:
URL: https://github.com/apache/airflow/pull/15007#discussion_r601725999
##########
File path: airflow/ui/src/views/Docs.tsx
##########
@@ -18,12 +18,171 @@
*/
import React from 'react';
-import { Center, Heading } from '@chakra-ui/react';
+import {
+ Box,
+ Button,
+ Flex,
+ Heading,
+ Icon,
+ Link,
+ List,
+ ListItem,
+ Text,
+ useColorModeValue,
+} from '@chakra-ui/react';
+import { FaGithub } from 'react-icons/fa';
+import { FiExternalLink, FiGlobe } from 'react-icons/fi';
-const Docs: React.FC = () => (
- <Center height="100vh">
- <Heading>Docs</Heading>
- </Center>
-);
+import AppContainer from 'components/AppContainer';
+
+const Docs: React.FC = () => {
+ // TEMP: This static list needs to be provided w/ a (currently non-existent)
API endpoint
+ const providers = [
+ { path: 'amazon', name: 'Amazon' },
+ { path: 'apache-beam', name: 'Apache Beam' },
+ { path: 'apache-cassandra', name: 'Apache Cassandra' },
+ { path: 'apache-druid', name: 'Apache Druid' },
+ { path: 'apache-hdfs', name: 'Apache HDFS' },
+ { path: 'apache-hive', name: 'Apache Hive' },
+ { path: 'apache-kylin', name: 'Apache Kylin' },
+ { path: 'apache-livy', name: 'Apache Livy' },
+ { path: 'apache-pig', name: 'Apache Pig' },
+ { path: 'apache-pinot', name: 'Apache Pinot' },
+ { path: 'apache-spark', name: 'Apache Spark' },
+ { path: 'apache-sqoop', name: 'Apache Sqoop' },
+ { path: 'celery', name: 'Celery' },
+ { path: 'cloudant', name: 'IBM Cloudant' },
+ { path: 'cncf-kubernetes', name: 'Kubernetes' },
+ { path: 'databricks', name: 'Databricks' },
+ { path: 'datadog', name: 'Datadog' },
+ { path: 'dingding', name: 'Dingding' },
+ { path: 'discord', name: 'Discord' },
+ { path: 'docker', name: 'Docker' },
+ { path: 'elasticsearch', name: 'Elasticsearch' },
+ { path: 'exasol', name: 'Exasol' },
+ { path: 'facebook', name: 'Facebook' },
+ { path: 'ftp', name: 'File Transfer Protocol (FTP)' },
+ { path: 'google', name: 'Google' },
+ { path: 'grpc', name: 'gRPC' },
+ { path: 'hashicorp', name: 'Hashicorp' },
+ { path: 'http', name: 'Hypertext Transfer Protocol (HTTP)' },
+ { path: 'imap', name: 'Internet Message Access Protocol (IMAP)' },
+ { path: 'jdbc', name: 'Java Database Connectivity (JDBC)' },
+ { path: 'jenkins', name: 'Jenkins' },
+ { path: 'jira', name: 'Jira' },
+ { path: 'microsoft-azure', name: 'Microsoft Azure' },
+ { path: 'microsoft-mssql', name: 'Microsoft SQL Server (MSSQL)' },
+ { path: 'microsoft-winrm', name: 'Windows Remote Management (WinRM)' },
+ { path: 'mongo', name: 'MongoDB' },
+ { path: 'mysql', name: 'MySQL' },
+ { path: 'neo4j', name: 'Neo4J' },
+ { path: 'odbc', name: 'ODBC' },
+ { path: 'openfaas', name: 'OpenFaaS' },
+ { path: 'opsgenie', name: 'Opsgenie' },
+ { path: 'oracle', name: 'Oracle' },
+ { path: 'pagerduty', name: 'Pagerduty' },
+ { path: 'papermill', name: 'Papermill' },
+ { path: 'plexus', name: 'Plexus' },
+ { path: 'postgres', name: 'PostgreSQL' },
+ { path: 'presto', name: 'Presto' },
+ { path: 'qubole', name: 'Qubole' },
+ { path: 'redis', name: 'Redis' },
+ { path: 'salesforce', name: 'Salesforce' },
+ { path: 'samba', name: 'Samba' },
+ { path: 'segment', name: 'Segment' },
+ { path: 'sendgrid', name: 'Sendgrid' },
+ { path: 'sftp', name: 'SFTP' },
+ { path: 'singularity', name: 'Singularity' },
+ { path: 'slack', name: 'Slack' },
+ { path: 'snowflake', name: 'Snowflake' },
+ { path: 'sqlite', name: 'SQLite' },
+ { path: 'ssh', name: 'SSH' },
+ { path: 'telegram', name: 'Telegram' },
+ { path: 'vertica', name: 'Vertica' },
+ { path: 'yandex', name: 'Yandex' },
+ { path: 'zendesk', name: 'Zendesk' },
+ ];
+
+ return (
+ <AppContainer>
+ <Box mx="auto" my={8} maxWidth="900px">
+ <Flex mt={8}>
+ <Box flex="1">
+ <Heading as="h1">Documentation</Heading>
+ <Text mt={4}>
+ Apache Airflow Core, which includes webserver, scheduler, CLI
and other components
+ that are needed for minimal Airflow installation.
+ </Text>
+ <Button
+ as="a"
+
href="https://airflow.apache.org/docs/apache-airflow/stable/index.html"
+ variant="solid"
+ rightIcon={<FiExternalLink />}
+ mt={4}
+ target="_blank"
+ rel="noopener noreferrer"
+ >
+ Apache Airflow Docs
+ </Button>
+ </Box>
+ <Box ml={8} p={4} bg={useColorModeValue('gray.100', 'gray.700')}
borderRadius="md">
+ <Heading as="h3" size="sm">Links</Heading>
+ <List mt={4} spacing={2}>
+ <ListItem>
+ <Link href="https://airflow.apache.org/" isExternal
color="teal.500">
+ <Icon as={FiGlobe} mr={1} />
+ Apache Airflow Website
+ </Link>
+ </ListItem>
+ <ListItem>
+ <Link href="https://github.com/apache/airflow" isExternal
color="teal.500">
+ <Icon as={FaGithub} mr={1} />
+ apache/airflow on GitHub
+ </Link>
+ </ListItem>
+ </List>
+ </Box>
+ </Flex>
+ <Box mt={10}>
+ <Heading as="h3" size="lg">REST API Reference</Heading>
+ <Flex mt={4}>
+ <Button
+ as="a"
+ href="http://127.0.0.1:28080/api/v1/ui/"
+ variant="outline"
+ rightIcon={<FiExternalLink />}
+ mr={2}
+ >
+ Swagger
+ </Button>
+ <Button
+ as="a"
+ href="http://127.0.0.1:28080/redoc"
Review comment:
We'll have to add a new key as that one includes `/api/v1/`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]