Azure / Azure/data-api-builder

[Enh]: introduce `dab update <stored-proc> --parameter <param-name> --<property-name> <property-value>`

Open
#3,191 0 comments 0 reactions 0 assignees View on GitHub
2.x cli stored-procedure
Dominant language
C#
Stars
1.5k
Forks
370
Avg merge
3d 17h
Merged PRs (30d)
8

Description

## What?

Introduce:

```
dab update \
--parameter \
--
```

This allows updating a single stored procedure parameter without redefining all parameters.

## Why?

Today, modifying a single parameter requires redefining every parameter.

Also, this is

### Example of the problem

To change just one default value, you must restate all parameters:

```
dab update UpdateCustomerPreferences \
--parameters.name "CustomerID,EmailNotifications,SMSNotifications,PreferredCurrency,MarketingOptIn" \
--parameters.description "Customer ID to update,Enable email notifications for orders and promotions,Enable SMS notifications for shipping updates,Preferred billing currency (ISO 4217 code),Opt in to marketing communications" \
--parameters.required "true,false,false,false,false" \
--parameters.default ",true,false,EUR,false"
```

Even though only `PreferredCurrency` changed.

### Example of the solution

Update only the intended parameter:

```
dab update UpdateCustomerPreferences \
--parameter PreferredCurrency \
--default=EUR
```

Update description:

```
dab update FindProducts \
--parameter SearchText \
--description "This is the new description value."
```

## How?

* Keep supporting the existing bulk parameter syntax.
* Introduce targeted parameter mutation syntax.
* Update documentation to recommend the new approach.
* Leave legacy syntax for full parameter redefinition scenarios.

### Output

* When legacy syntax is used, output/log the new syntax preference.
```
Using legacy parameter syntax.

Consider using targeted syntax:

dab add \
--parameter \
--property-name

dab update \
--parameter \
--property-name
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.