# 07 Sep 2021 - Forge CLI version 2.0.1 and Secure Storage API

**URL:** <https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737>\
**Category:** Forge Announcements\
**Tags:** announcement, forge-cli\
**Created:** [September 6, 2021, 11:41pm UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737 "2021-09-06T23:41:52Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![SamSmyth](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/samsmyth/32/48584_2.png) [@SamSmyth](https://community.developer.atlassian.com/u/SamSmyth)\
**Post date:** [September 6, 2021, 11:41pm UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/1 "2021-09-06T23:41:52Z")

</div>

#### 🎉 ADDED - linter support for the connectModules property to the Forge CLI

To help support developers moving Connect apps to Forge, we have added linter support for the [connectModules](https://developer.atlassian.com/platform/forge/manifest-reference/#properties) property to the Forge CLI.

#### 🎉 ADDED - Forge Secure Storage API in @forge/api 2.3.0

We’re adding new APIs to the existing [Forge Storage API](https://developer.atlassian.com/platform/forge/runtime-reference/storage-api/) so that Forge apps now store secrets and credentials securely.

Similar to `storage.set`, `storage.get` and `storage.delete`, the new APIs are `storage.setSecret`, `storage.getSecret`, and `storage.deleteSecret`.

#### 🎉 ADDED - Submit method to the view export of @forge/bridge 2.1.0

Added a submit method to the view export of the `@forge/bridge` package to enable form submission. The method is supported in [Jira custom field edit](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#editing), [Jira custom field type edit](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#editing-1), and [Jira context configuration](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#configuration).

#### 🎉 ADDED - Custom UI support for Jira custom field edit

Added Custom UI support for defining the [editing experience for Jira custom fields](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#editing) and [Jira custom field types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#editing-1).

#### 🎉 ADDED - Custom UI support for Jira context configuration of custom fields

Added Custom UI support for [Jira context configuration](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#configuration) of custom fields.

#### 🔧 UPDATED - Forge CLI install upgrade warning

We’ve modified the `forge install --upgrade` warning to communicate specifically when the upgrade requirement is caused by permission changes.

---

<div class="post-metadata">

**Author:** ![anon87782987](https://avatars.discourse-cdn.com/v4/letter/a/e79b87/32.png) [@anon87782987](https://community.developer.atlassian.com/u/anon87782987)\
**Post date:** [September 7, 2021, 7:25am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/2 "2021-09-07T07:25:35Z")

</div>

> [@SamSmyth](#):
>
> ADDED - Forge Secure Storage API

Awesome!

From the docs it looks like `storage.x` behaves exactly the same as `storage.xSecret`. Other than the `secret` version being encrypted (I assume) is there any reason why I should use the non-`secret` version anymore now? Am I doing something wrong if I store all my “normal” data via the new method? What are the implications? It would be nice if you could add some documentation regarding this. 🙂

Cheers,  
Sven

---

<div class="post-metadata">

**Author:** ![amathur](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/amathur/32/35162_2.png) [@amathur](https://community.developer.atlassian.com/u/amathur)\
**Post date:** [September 8, 2021, 1:26am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/3 "2021-09-08T01:26:25Z")

</div>

Hey Sven,

Thanks for posting. The secret APIs on storage is specifically meant to store secrets. While nothing is stopping us from using it to store general-purpose data today, in the future, we are looking at adding features into this API that is meant only for secrets like API keys. Which may impact the app if there are general-purpose data being stored in secret storage.

Cheers,

---

<div class="post-metadata">

**Author:** ![ajay](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ajay/32/53765_2.png) [@ajay](https://community.developer.atlassian.com/u/ajay)\
**Post date:** [September 8, 2021, 5:34am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/4 "2021-09-08T05:34:20Z")

</div>

@SamSmyth

I had connect on forge App working on v1.6.1  
However after updating the forge-cli to version 2.0.1 , the connect modules are not getting displayed, although the App is getting installed without any issues after I add the below lines in the App manifest

```auto
  connect:
    key: app-key
    remote: connect

```

Are there any issues with Forge CLI v2.0.1 with Connect on forge ?

---

<div class="post-metadata">

**Author:** ![jhazelwood](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/jhazelwood/32/44414_2.png) [@jhazelwood](https://community.developer.atlassian.com/u/jhazelwood)\
**Post date:** [September 8, 2021, 8:24am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/5 "2021-09-08T08:24:47Z")

</div>

Hi @ajay

I will look into your connect-on-forge issue tomorrow.

Cheers,  
James

---

<div class="post-metadata">

**Author:** ![anon87782987](https://avatars.discourse-cdn.com/v4/letter/a/e79b87/32.png) [@anon87782987](https://community.developer.atlassian.com/u/anon87782987)\
**Post date:** [September 8, 2021, 8:33am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/6 "2021-09-08T08:33:05Z")

</div>

Hi @amathur,

thanks for your answer! While I appreciate your response, I’ll have to tell you that it didn’t really answer my question at the level of detail I was hoping for.

Of course, I personally understand that I shouldn’t be storing my non-sensitive data using the new secrets API, but there may be many who don’t. (i.e.: If you don’t make it 100% clear why developers shouldn’t do this, you’ll likely see some doing this very soon) It would be great if you could add at least some high-level information to the documentation about what functionality you expect to build here and in what explicit way, shape, or form apps will be impacted by this functionality if they store non-sensitive data using this API.

Cheers,  
Sven

---

<div class="post-metadata">

**Author:** ![MWulff](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/mwulff/32/41379_2.png) [@MWulff](https://community.developer.atlassian.com/u/MWulff)\
**Post date:** [September 8, 2021, 12:43pm UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/7 "2021-09-08T12:43:11Z")

</div>

Who has access to `storage.set` data at the moment and how does `storage.setSecret` make sure they dont have access anymore?

---

<div class="post-metadata">

**Author:** ![danielwester](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/danielwester/32/36730_2.png) [@danielwester](https://community.developer.atlassian.com/u/danielwester)\
**Post date:** [September 8, 2021, 2:27pm UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/8 "2021-09-08T14:27:11Z")

</div>

Is it possible to get the forge/api version listed when things are added to it?

---

<div class="post-metadata">

**Author:** ![ajay](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ajay/32/53765_2.png) [@ajay](https://community.developer.atlassian.com/u/ajay)\
**Post date:** [September 9, 2021, 2:10am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/9 "2021-09-09T02:10:44Z")

</div>

Hi @jhazelwood

Let me know if you need my manifiest or atlassian-connect to debug the issue…  
With cli 1.6.1, the app key would be appended with a UUID , but with the latest release 2.0.1, I dont see that happening… Not sure if its related to the issue I am facing… The forge install works , and I see the connect App also installed in the cloud instance… but the UI modules ( in my case web-items in jira.software.board.tools ) is missing

---

<div class="post-metadata">

**Author:** ![jhazelwood](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/jhazelwood/32/44414_2.png) [@jhazelwood](https://community.developer.atlassian.com/u/jhazelwood)\
**Post date:** [September 9, 2021, 3:18am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/10 "2021-09-09T03:18:52Z")

</div>

We’ve reproduced the missing modules issue and are investigating it now. You can follow [this ticket](https://ecosystem.atlassian.net/browse/FRGE-372) for updates.

---

<div class="post-metadata">

**Author:** ![ajay](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/ajay/32/53765_2.png) [@ajay](https://community.developer.atlassian.com/u/ajay)\
**Post date:** [September 9, 2021, 4:07am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/11 "2021-09-09T04:07:41Z")

</div>

@jhazelwood Thanks for the info… I will wait for the fix… ( have a Codegeist entry to be submitted 😉 )

---

<div class="post-metadata">

**Author:** ![amathur](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/amathur/32/35162_2.png) [@amathur](https://community.developer.atlassian.com/u/amathur)\
**Post date:** [September 9, 2021, 5:05am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/12 "2021-09-09T05:05:48Z")

</div>

Hey @MWulff,

It is more about the difference in the purpose of the two APIs. The secrets API on storage is meant to store secrets and in the future, we will be adding features to this API that are meant only for storing secrets like, API keys. To enhance security stories around them. For example, currently, the secrets stored using `storage.setSecret` are not queried when running `storage.query` API.

Cheers,  
Ajay

---

<div class="post-metadata">

**Author:** ![jhazelwood](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/jhazelwood/32/44414_2.png) [@jhazelwood](https://community.developer.atlassian.com/u/jhazelwood)\
**Post date:** [September 9, 2021, 8:00am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/13 "2021-09-09T08:00:34Z")

</div>

Please see the public issue for [an update](https://ecosystem.atlassian.net/browse/FRGE-372?focusedCommentId=652865). It includes a workaround, which is to let us know your app ID so we can let you know your app’s randomly-generated key, in order to set `app.connect.key` to match.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/atlassiandeveloper/original/3X/7/8/78672baa5ba80cd9164376457051d0eec038b082.png) [@system](https://community.developer.atlassian.com/u/system)\
**Post date:** [October 9, 2021, 8:00am UTC](https://community.developer.atlassian.com/t/07-sep-2021-forge-cli-version-2-0-1-and-secure-storage-api/51737/14 "2021-10-09T08:00:54Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
