dbdocs
======

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/dbdocs.svg)](https://npmjs.org/package/dbdocs)
[![Downloads/week](https://img.shields.io/npm/dw/dbdocs.svg)](https://npmjs.org/package/dbdocs)
[![License](https://img.shields.io/npm/l/dbdocs.svg)](https://github.com/holistics/dbdocs/blob/master/package.json)

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->

# Usage
<!-- usage -->
```sh-session
$ npm install -g dbdocs
$ dbdocs COMMAND
running command...
$ dbdocs (-v|--version|version)
dbdocs/0.6.2 darwin-x64 node-v15.10.0
$ dbdocs --help [COMMAND]
USAGE
  $ dbdocs COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`dbdocs build [FILEPATH]`](#dbdocs-build-filepath)
* [`dbdocs db2dbml [DATABASE-TYPE] [CONNECTION-STRING`](#dbdocs-db2dbml-database-type-connection-string)
* [`dbdocs help [COMMAND]`](#dbdocs-help-command)
* [`dbdocs login`](#dbdocs-login)
* [`dbdocs logout`](#dbdocs-logout)
* [`dbdocs ls`](#dbdocs-ls)
* [`dbdocs password`](#dbdocs-password)
* [`dbdocs remove [PROJECT_NAME]`](#dbdocs-remove-project_name)
* [`dbdocs rename`](#dbdocs-rename)
* [`dbdocs set`](#dbdocs-set)
* [`dbdocs token`](#dbdocs-token)
* [`dbdocs validate [FILEPATH]`](#dbdocs-validate-filepath)

## `dbdocs build [FILEPATH]`

build docs

```bash
USAGE
  $ dbdocs build [FILEPATH]

ARGUMENTS
  FILEPATH  dbml file path

OPTIONS
  -p, --password=password  password for project
  --project=project        project name
```

## `dbdocs db2dbml [DATABASE-TYPE] [CONNECTION-STRING]`

Generate DBML directly from a database

```bash
USAGE
  $ dbdocs db2dbml [DATABASE-TYPE] [CONNECTION-STRING] [-o <value>]

ARGUMENTS
  DATABASE-TYPE      your database type (postgres, mysql, mssql, oracle, snowflake, bigquery)
  CONNECTION-STRING  your database connection string (See below examples for more details)

FLAGS
  -o, --outFile=/path-to-your-file  output file path

DESCRIPTION
  Generate DBML directly from a database

EXAMPLES
  Postgres:
    $ db2dbml postgres 'postgresql://user:password@localhost:5432/dbname?schemas=schema1,schema2'
  MySQL:
    $ db2dbml mysql 'mysql://user:password@localhost:3306/dbname'
  MSSQL:
    $ db2dbml mssql 'Server=localhost,1433;Database=master;User Id=sa;Password=your_password;Encrypt=true;TrustServerCertificate=true;Schemas=schema1,schema2;'
  Oracle:
    $ db2dbml oracle 'your_username/your_password@localhost:1521/dbname' -o database.dbml
  Snowflake:
    $ db2dbml snowflake 'SERVER=<account_identifier>.<region>;UID=<your_username>;PWD=<your_password>;DATABASE=<your_database>;WAREHOUSE=<your_warehouse>;ROLE=<your_role>;SCHEMAS=schema1,schema2;'
  BigQuery:
    $ db2dbml bigquery /path_to_json_credential.json

    Note: Your JSON credential file must contain:
    {
      "project_id": "your-project-id",
      "client_email": "your-client-email",
      "private_key": "your-private-key",
      "datasets": ["dataset_1", "dataset_2", ...]
    }
    If "datasets" key is not provided or is empty, it will fetch all datasets.
```

## `dbdocs help [COMMAND]`

display help for dbdocs

```bash
USAGE
  $ dbdocs help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

## `dbdocs login`

login to dbdocs

```bash
USAGE
  $ dbdocs login [--legacy]

FLAGS
  --legacy  Use legacy login methods: Email OTP or Google/GitHub with manual token copy

DESCRIPTION
  login to dbdocs
```

## `dbdocs logout`

logout

```bash
USAGE
  $ dbdocs logout

DESCRIPTION
  clears local login credentials
```

## `dbdocs ls`

list projects

```bash
USAGE
  $ dbdocs ls

DESCRIPTION
  list all projects in your default organization
```

## `dbdocs password`

set password for your project or remove password

```bash
USAGE
  $ dbdocs password

OPTIONS
  -p, --project=project name  project name
  -r, --remove                remove password from your project
  -s, --set=password          password for your project
```

## `dbdocs remove [PROJECT_NAME]`

remove project

```bash
USAGE
  $ dbdocs remove [PROJECT_NAME]

ARGUMENTS
  PROJECT_NAME  name of the project which you want to remove
```

## `dbdocs rename`

change your username

```bash
USAGE
  $ dbdocs rename

DESCRIPTION
  change your username and your default organization name
```

## `dbdocs set`

Set the Web URL and API URL of dbdocs self-hosted server

```bash
USAGE
  $ dbdocs set --webUrl <value> --apiUrl <value>

FLAGS
  --apiUrl=<value>  (required) Self-hosted api url
  --webUrl=<value>  (required) Self-hosted web url

DESCRIPTION
  Set the Web URL and API URL of dbdocs self-hosted server

EXAMPLES
  $ dbdocs set --webUrl http://webserver.dev --apiUrl http://apiserver.dev
```

## `dbdocs token`

generate or revoke your authentication token

```bash
USAGE
  $ dbdocs token

OPTIONS
  -g, --generate  generate authentication token
  -r, --revoke    revoke authentication token
```

## `dbdocs validate [FILEPATH]`

validate docs content

```bash
USAGE
  $ dbdocs validate [FILEPATH]

ARGUMENTS
  FILEPATH  dbml file path
```
<!-- commandsstop -->
