Skip to content

Commit 6ab5efd

Browse files
authored
Merge pull request #298 from cyyeh/feature/update-doc
refine README and docs
2 parents 2e97a9a + aaa8e7b commit 6ab5efd

File tree

4 files changed

+53
-8
lines changed

4 files changed

+53
-8
lines changed

README.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,28 @@
2323
</a>
2424
</p>
2525

26-
## What is VulcanSQL
26+
## What is VulcanSQL?
2727

28-
**[VulcanSQL](https://vulcansql.com/) is a Data API Framework for data applications** that helps data folks create and share data APIs faster. It turns your SQL templates into data APIs. No backend skills required.
28+
**[VulcanSQL](https://vulcansql.com/) is an Analytical Data API Framework for data apps**. It aims to help data professionals deliver RESTful APIs from databases, data warehouses or data lakes much easier and faster. It turns your SQL queries into REST APIs in no time!
2929

3030
![overview of VulcanSQL](https://i.imgur.com/JvCIZQ1.png)
3131

32-
## Online Playground
32+
## What Problems does VulcanSQL aim to solve?
3333

34-
Use [Online Playground](https://codesandbox.io/p/sandbox/vulcansql-demo-wfd834) to get a taste of VulcanSQL!
34+
Given the vast amount of analytical data in databases, data warehouses, and data lakes, there is currently no easy method for data professionals to share data with relevant stakeholders for operational business use cases.
3535

36-
## Examples
36+
## Online Playground
3737

38-
Need Inspiration?! Discover a [selected compilation of examples](https://github.com/Canner/vulcan-sql-examples) showcasing the use of VulcanSQL!
38+
Use [Online Playground](https://codesandbox.io/p/sandbox/vulcansql-demo-wfd834) to get a taste of VulcanSQL!
3939

4040
## Installation
4141

4242
Please visit [the installation guide](https://vulcansql.com/docs/get-started/installation).
4343

44+
## Examples
45+
46+
Need inspiration? Here are a [selected compilation of examples](https://github.com/Canner/vulcan-sql-examples) showcasing how you can use VulcanSQL!
47+
4448
## How VulcanSQL works?
4549

4650
💻 **Build**
@@ -49,7 +53,7 @@ VulcanSQL offers a development experience similar to dbt. Just insert variables
4953

5054
🚀 **Accelerate**
5155

52-
VulcanSQL uses DuckDB as a caching layer, boosting your query speed and API response time . This means faster, smoother data APIs for you and less strain on your data sources.
56+
VulcanSQL uses DuckDB as a caching layer, boosting your query speed and reducing API response time. This means faster, smoother data APIs for you and less strain on your data sources.
5357

5458
🔥 **Deploy**
5559

@@ -82,7 +86,7 @@ Below are some common scenarios that you may be interested:
8286

8387
👏 **Data sharing**: Sharing data with partners, vendors, or customers, which requires a secure and scalable way to expose data.
8488

85-
⚙️ **Internal tools**: Integration with internal tools like AppSmith and Retools, etc.
89+
⚙️ **Internal tools**: Integration with internal tools like Zapier, AppSmith and Retools, etc.
8690

8791
## Community
8892

packages/doc/docs/intro.mdx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ Discover how to validate and sanitize API parameters in VulcanSQL. This feature
3131
1. [Handling Data Privacy](./data-privacy/overview):
3232
Explore the mechanisms and practices for handling data privacy in VulcanSQL. It encompasses practices and measures implemented to safeguard personal, confidential, or regulated information from unauthorized access, misuse, or disclosure.
3333

34+
### Extensions
35+
36+
VulcanSQL allows you to extend its core functionalities through extensions.
37+
38+
1. [dbt](./extensions/dbt): VulcanSQL supports queries from dbt's SQL models directly.
39+
If you use dbt to create some models, you can make APIs for them instantly.
40+
2. [Hugging Face](./extensions/huggingface/overview): With this plugin, you can leverage
41+
the power of language models to generate SQL quries using natural language.
42+
3. [API](./extensions/api): You can access data from 3rd parties through calling REST APIs with this extension.
43+
3444
### API Catalog & Documentation
3545
1. [API Catalog](catalog/intro):
3646
Learn how to create an API catalog with VulcanSQL, providing a centralized repository for all your Data APIs. This catalog enables easy discovery, management, and sharing of APIs within your organization.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# FAQs
2+
3+
## How do you deal with SQL injection attacks?
4+
5+
Because VulcanSQL supports multiple connectors (e.g.: Snowflake, BigQuery, etc.), so we delegate our connectors to handle the SQL injection
6+
by their prepared statement through parameterized queries from the connectors' client:
7+
8+
BigQuery: https://cloud.google.com/bigquery/docs/parameterized-queries
9+
```sql
10+
SELECT word, word_count FROM `bigquery-public-data.samples.shakespeare`
11+
WHERE corpus = @corpus AND word_count >= @min_word_count
12+
ORDER BY word_count DESC
13+
```
14+
15+
Snowflake: https://docs.snowflake.com/en/developer-guide/node-js/nodejs-driver-execute#binding-statement-parameters
16+
```sql
17+
SELECT word, word_count FROM `bigquery-public-data.samples.shakespeare`
18+
WHERE corpus = :1 AND word_count >= :2
19+
ORDER BY word_count DESC
20+
```
21+
22+
Then, we replace the input parameters with parameterized values like $1, $2 ...etc, and record the input values in the
23+
`Parameterizer` when sending a query from an API request with query arguments. Finally we organize the SQL statement with
24+
parameters query in the `DataQueryBuilder` and send it to the connector to delegate the connector client to handle SQL
25+
injection and execute the SQL query.
26+
27+
You could see https://github.com/Canner/vulcan-sql/pull/40 to read it more.

packages/doc/sidebars.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,10 @@ const sidebars = {
431431
type: 'doc',
432432
id: 'references/data-source-profile',
433433
},
434+
{
435+
type: 'doc',
436+
id: 'references/faq',
437+
},
434438
{
435439
type: 'html',
436440
value: '<br/><br/>',

0 commit comments

Comments
 (0)