---
# System prepended metadata

title: dsplus - Introduction
tags: [dsplus, documentation]

---

---
tags: dsplus,documentation
title : dsplus - Introduction
description: Introduction
---

# DSPLUS

Un outil en ligne de commande pour interagir avec DataStage et simplifier la mise en place d'une chaine CI/CD pour DataStage.


## Fonctionalités
* Requêter les objets d'un projet
* Extraire ou générer les informations d'un objet
    * Export
    * Métadonnées
    * Capture d'écran
    * Code source
    * Checksum
    * Arbre syntaxique
    * Documentation
* Versionner un objet
* Synchroniser avec un système de gestion de révisions
* Packager un ensemble d'objets en un artefact
* Déployer un artefact sur un projet
* Publier un artefact sur un gestionnaire d'artefacts
* Contrôler le respect de normes de qualités
* Configurer un projet


## Syntaxe

```
dsplus commande [options]
```

Les options sont spécifiées au format long ```--option valeur``` ou court (suivant les options) ```-o valeur```

Les options à valeurs multiples sont spécifiées de la manière suivante:

```--option valeur1 valeur2```

Les syntaxes ci-dessous sont acceptées:


```
--option=valeur
--option valeur1 --option valeur2
```

Les options aux format court sont combinables
```
-o -x
-ox
```



## Installation

Placer l'exécutable correspondant au système dans un répertoire faisant partie du PATH.

## Commandes

Les commandes reconnues par défauts sont:
* **projects** : lister les projets
* **list** : lister les objets d'un projet
* **get** : extraire les information d'un objet d'un projet
* **init** : extraire les informations de tous les objets d'un projet
* **status** : comparer un projet avec un repository local
* **package** : packager les objets d'un repository local
* **deploy** : déployer un package vers un projet
* **quality**: controler le respect de normes de qualité
* **coverage**: état des tests
* **configure**: appliquer une configuration sur un projet
* **publish**: publier un package sur un gestionnaire d'artefacts
* **current**: afficher les packages déployés sur un projet


## Options
### Générales

Ces options s'appliquent à la plupart des commandes

Option | Courte | Type |  Description
---|---|---|---
help | h | bool |  Afficher l'aide
domain| d | chaîne | Adresse du serveur applicatif et le port (format host:port)
server| s | chaîne | Adresse du moteur DataStage
username | u | chaîne | Utilisateur
password | p | chaîne | Mot de passe de l'utilisateur
config | | chaîne | chemin vers un fichier de configuration
env | | chaîne | Un environnement défini dans le fichier de configuration
project | P | chaîne | Nom du projet DataStage
target | | chaîne | Chemin vers un dossier cible local
verbose | v | bool | Affichage plus verbeux
output | o | bool | Ecrire les informations dans le dossier cible
format | f | chaîne | Format de la sortie standard, par défaut du json "pretty printed", les formats possibles: table, mtable (format markdown), csv, json, html (pour certains cas)
query | | chaîne | requête à appliquer à la sortie standard, soit au format sql: "select * from ?" soit au format jsonata (https://jsonata.org/)

### Informations

Ces options s'appliquent à la commande get et indiquent quelles informations sont à extraire ou générer

Option | Courte | Type |  Description
---|---|---|---
metadata | m | bool |  Métadonnées
code |c | bool |  Code source
image | i | bool |  Capture d'écran
export | x | bool |  Export isx
checksum | k | bool |  Checksum
ast | | bool |  Arbre syntaxique
doc | | bool |  Documentation
server| | bool | Hostname du moteur
project|| bool | Nom du projet
run | r | bool |  Informations sur la dernière execution (nécessite que l'operation console soit active)

### Options spécifiques
#### list
Option | Courte | Type |  Description
---|---|---|---
info  |  | chaîne |  Informations à lister
filter | | chaîne | Clause de filtrage (syntaxe de where sql)



#### package

Option | Courte | Type |  Description
---|---|---|---
git | g | bool | Le repository est de type git
mode | | chaîne |  FULL ou DELTA
version | | chaîne/array | Révisions git
pack | | chaîne | Nom du package

#### deploy

Option | Courte | Type |  Description
---|---|---|---
git | g | bool | Le repository est de type git
pack | | chaîne | Nom du package

## Fichier de configuration

Il est recommandé de mettre en place un fichier de configuration adapté à l'environnement et à l'usage souhaité. Cela permetra de simplifier les commandes. 

Le fichier est peut-être au format, YAML, JSON ou [TOML](https://github.com/toml-lang/toml), on peut y spécifier toutes les options dans les sections et sous-sections:
* defaults
* envs
    * *env*

Les options générales sont définies dans la section defaults on peut définir ensuite des environnements pour les options qui varieraient entre environnement.

En cas d'option définie de manière multiple la priorité est la suivante:
Ligne de commande > env > defaults

* Exemple au format yaml:
```yaml
defaults:
  dspath: "C:/IBM/InformationServer"
  domain: "localhost:9446"
  server: IS-ENGINEDOCKER
  username: isadmin
  password: "password"
```
* Exemple au format toml:
```toml
[defaults]
  dspath="C:/IBM/InformationServer"
  domain="localhost:9446"
  server=IS-ENGINEDOCKER
  username=isadmin
  password="password"
```

## Formats de sortie

L'outil produit en fonction des commandes des informations:
* Dans des fichiers plats
* Sur la sortie standard

Les fichiers plats sont en général produit lors des commandes `get` ou `init` lorsque l'option `output` est à `true`.

La sortie standard peut être de plusieurs types:
* Informations d'éxecutions (commandes `init/package/deploy`)
* JSON ou multi-json (commandes `list/get(metadata,ast,manifest,current,status)`)

Lorsque la sortie est de type JSON on peut utiliser l'option `query` pour la formater. On peut également indiquer l'option `format`.
Il est également possible de développer des formateurs personnalisés pour produire du html ou du markdown par exemple.


