Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions extensions/chat-with-content/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ As a Posit Connect administrator, you need to configure the environment for this

1. **Publish the Extension**: Publish this application to Posit Connect.

2. **Configure Environment Variables**: In the "Vars" pane of the content settings, you need to set environment variables to configure the LLM provider. This extension uses the `chatlas` library, which supports various LLM providers like OpenAI, Azure OpenAI, Google Gemini, Anthropic, and Anthropic on AWS Bedrock.
2. **Configure Environment Variables**: In the content settings, set the following environment variables to configure the LLM provider. This extension uses the `chatlas` library, which supports various LLM providers like OpenAI, Azure OpenAI, Google Gemini, Anthropic, and Anthropic on AWS Bedrock.

Set `CHATLAS_CHAT_PROVIDER_MODEL` to specify the provider and model in the format `provider/model`. You also need to provide the API key for the chosen service.

Expand Down Expand Up @@ -52,7 +52,7 @@ As a Posit Connect administrator, you need to configure the environment for this

The application uses the [botocore](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/credentials.html) credential chain for AWS authentication. If the Connect server is running on an EC2 instance with an IAM role that grants access to Bedrock, credentials are automatically detected and no configuration is needed. In this case, the application uses the `us.anthropic.claude-sonnet-4-20250514-v1:0` model by default.

To use Bedrock without an IAM role, set the standard AWS environment variables in the "Vars" pane:
To use Bedrock without an IAM role, set the following environment variables in the content settings:

- `AWS_ACCESS_KEY_ID`: `<your-aws-access-key>`
- `AWS_SECRET_ACCESS_KEY`: `<your-aws-secret-key>` (Set this as a secret)
Expand All @@ -61,7 +61,7 @@ As a Posit Connect administrator, you need to configure the environment for this

For more details on supported providers and their arguments, see the [chatlas documentation](https://posit-dev.github.io/chatlas/reference/ChatAuto.html).

3. **Enable Visitor API Key Integration**: This extension requires access to the Connect API on behalf of the visiting user to list their available content. In the "Access" pane of the content settings, add a "Connect Visitor API Key" integration.
3. **Enable Visitor API Key Integration**: This extension requires access to the Connect API on behalf of the visiting user to list their available content. In the content settings, add a "Connect Visitor API Key" integration.

### User Setup

Expand Down
4 changes: 2 additions & 2 deletions extensions/chat-with-content/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ def fetch_connect_content_list(client: connect.Client):
ui.div(
ui.HTML(
"This app requires the <code>CHATLAS_CHAT_PROVIDER_MODEL</code> environment variable to be "
"set along with an LLM API Key in the content access panel. Please set them in your environment before running the app. "
"set along with an LLM API Key in the content settings. Please set them in your environment before running the app. "
'See the <a href="https://posit-dev.github.io/chatlas/reference/ChatAuto.html" class="setup-link" target="_blank" rel="noopener">documentation</a> for more details on which arguments can be set for each Chatlas provider.'
),
class_="setup-description",
Expand All @@ -146,7 +146,7 @@ def fetch_connect_content_list(client: connect.Client):
),
ui.h2("Connect Visitor API Key", class_="setup-section-title"),
ui.div(
"Before you are able to use this app, you need to add a Connect Visitor API Key integration in the access panel.",
"Before you are able to use this app, you need to add a Connect Visitor API Key integration in the content settings.",
class_="setup-description",
),
class_="setup-card",
Expand Down
6 changes: 3 additions & 3 deletions extensions/chat-with-content/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"tags": ["llm", "shiny", "chat", "python"],
"minimumConnectVersion": "2025.04.0",
"requiredFeatures": ["OAuth Integrations"],
"version": "0.0.5"
"version": "0.0.6"
},
"files": {
"requirements.txt": {
Expand All @@ -37,10 +37,10 @@
"checksum": "693ec79eaa892babde62587aaacf0d8b"
},
"README.md": {
"checksum": "d41d8cd98f00b204e9800998ecf8427e"
"checksum": "7b072eef923c062a0bf1667dde6c2b95"
},
"app.py": {
"checksum": "c004da6cd26d590b19bc0a2efd486ddf"
"checksum": "74b2cad1b559b06c306a1ee44ce00185"
},
"helpers.py": {
"checksum": "b18f4bc0072b6e47864670a3174b0cea"
Expand Down
16 changes: 5 additions & 11 deletions extensions/content-health-monitor/content_health_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,9 @@ def get_env_var(var_name, state, description=""):

f"<h2>Step 2: Configure this report</h2>"
f"{one_tab}• Return to this report<br>"
f"{one_tab}• Click the <b>gear icon</b> at the top right of the screen to open <b>Content Settings</b><br>"
f"{one_tab}<img src=\"images/settings-gear-icon.png\" alt=\"Content Settings button\" style=\"max-width: 30%; margin: 10px 0 10px 0; border: 1px solid #ddd;\"><br>"
f"{one_tab}• Click the <b>Vars</b> tab<br>"
f"{one_tab}• In the <b>Name</b> field enter <code>{var_name}</code><br>"
f"{one_tab}• In the <b>Value</b> field paste the full address you copied in the previous step<br>"
f"{one_tab}• It should look like the example below<br>"
f"{one_tab}<img src=\"images/vars.png\" alt=\"Environment Variables tab\" style=\"max-width: 30%; margin: 10px 0 10px 0; border: 1px solid #ddd;\"><br>"
f"{one_tab}• Click <b>Add Variable</b><br>"
f"{one_tab}• Click <b>Save</b> at the top of the screen to save your changes<br><br>"
f"{one_tab}• Open the content settings for this report<br>"
f"{one_tab}• Set the environment variable <code>{var_name}</code> to the URL you copied in the previous step<br>"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generic wording, no screenshots works for both old and new UI which is a good idea. One concern: for Content Health Monitor specifically, a first-time user deploying this extension sees "Open the content settings" and "Set the environment variable" without visual guidance may leave them searching for where things are.

Approach in #345 provides step by step instruction but won't match what the ~small number of users on the old settings pane see.

Since the new UI is enabled by default and the old UI is scheduled for removal in v2026.06.0 (#36191 in Connect), I'd lean toward targeting the new UI with specific instructions but the generic approach is reasonable too. Happy to go either way.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

late to this, since customers might be on older versions without new settings panel I lean towards keeping it generic to avoid confusion. I can add an issue to come back next year and add updates.

f"{one_tab}• Save your changes<br><br>"

f"<h2>Step 3: Run the report to execute the health check</h2>"
f"{one_tab}• Click the <b>Refresh Report</b> button at the top right to run a health check against the monitored content<br>"
Expand Down Expand Up @@ -153,7 +147,7 @@ def extract_guid(input_string):
f"The URL should contain a GUID like: <code>1d97c1ff-e56c-4074-906f-cb3557685b75</code><br><br>"
f"The URL provided is: <a href=\"{input_string}\" target=\"_blank\" rel=\"noopener noreferrer\">{input_string}</a><br><br>"
f"Please update your environment variable with a valid a URL containing a GUID.<br><br>"
f"Or copy the GUID from the bottom of the Info tab. See the <a href=\"https://docs.posit.co/connect/user/content-settings/\" target=\"_blank\" rel=\"noopener noreferrer\">Connect Content Settings User Guide</a> instructions for more information.<br><br>"
f"Or copy the GUID from the content settings. See the <a href=\"https://docs.posit.co/connect/user/content-settings/\" target=\"_blank\" rel=\"noopener noreferrer\">Connect Content Settings User Guide</a> for more information.<br><br>"
)
return input_string, error_message

Expand All @@ -163,7 +157,7 @@ def extract_guid(input_string):
f"A valid GUID looks like: <code>1d97c1ff-e56c-4074-906f-cb3557685b75</code><br><br>"
f"The provided value was: <code>{input_string}</code><br><br>"
f"Please update your environment variable with a valid GUID or a URL containing a GUID.<br><br>"
f"The GUID can be found at the bottom of the Info tab. See the <a href=\"https://docs.posit.co/connect/user/content-settings/\" target=\"_blank\" rel=\"noopener noreferrer\">Connect Content Settings User Guide</a> instructions for more information.<br><br>"
f"The GUID can be found in the content settings. See the <a href=\"https://docs.posit.co/connect/user/content-settings/\" target=\"_blank\" rel=\"noopener noreferrer\">Connect Content Settings User Guide</a> for more information.<br><br>"
)
return input_string, error_message

Expand Down
Binary file not shown.
Binary file removed extensions/content-health-monitor/images/vars.png
Binary file not shown.
10 changes: 2 additions & 8 deletions extensions/content-health-monitor/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"category": "extension",
"tags": [],
"minimumConnectVersion": "2025.04.0",
"version": "1.0.0"
"version": "1.0.1"
},
"environment": {
"python": {
Expand Down Expand Up @@ -44,13 +44,7 @@
"checksum": "d108f54df865a66e2ac54a7fb3ac9772"
},
"content_health_utils.py": {
"checksum": "5b7c8db239c4b9e0782060b1172b2456"
},
"images/vars.png": {
"checksum": "9840b32e4adec7d5a3c70bb3373a63bb"
},
"images/settings-gear-icon.png": {
"checksum": "e2bc43263eb8a9179b6e0e5ab3e22450"
"checksum": "a7ffc1f7258a95b79a07032de96bac4d"
},
"images/address-bar.png": {
"checksum": "993cc8f97996c68f30527abbcc63cf3c"
Expand Down
4 changes: 1 addition & 3 deletions extensions/publisher-command-center/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

After deploying **Publisher Command Center**, you'll need to add a Visitor API Key integration.

In Posit Connect go to the app's control panel on the right of the screen, in
the Access tab, click **"Add integration"**, then select a **Visitor API Key**
integration.
In the content settings, add a **Visitor API Key** integration.

If you don't see one in the list, an administrator must enable this feature on your Connect server.
See the [Admin Guide](https://docs.posit.co/connect/admin/integrations/oauth-integrations/connect/) for setup instructions.
2 changes: 1 addition & 1 deletion extensions/publisher-command-center/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"homepage": "https://github.com/posit-dev/connect-extensions/tree/main/extensions/publisher-command-center",
"minimumConnectVersion": "2025.04.0",
"requiredFeatures": ["API Publishing", "OAuth Integrations"],
"version": "0.0.6"
"version": "0.0.7"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't hurt anything to release this, but if it's only the readme that's changing, we don't actually need a release for that, right? the readme isn't in the thing that gets installed from the gallery for this one, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh great point, I was on a roll. The readme goes with the bundle, so it does technically ( i had to check to confirm just now) but I am not sure that's really used?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nods yeah I think it tags along, but the only way someone would get to it would be to download the bundle after installing.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems unlikely. I will defer to your judgement here, it also kind of strange to bump version just for readme change now that we are talking about it.

},
"files": {
"requirements.txt": {
Expand Down
4 changes: 2 additions & 2 deletions extensions/simple-shiny-chat-with-mcp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Set the appropriate API key for your chosen provider:
1. **Minimum Connect Version**: 2025.04.0 or later
2. **Minimum Python Version**: 3.10 or later
3. **OAuth Integrations**: Must be enabled on your Connect server
4. **Connect Visitor API Key**: This extension requires access to the Connect API on behalf of the visiting user to list their available content. In the "Access" pane of the content settings, add a "Connect Visitor API Key" integration.
4. **Connect Visitor API Key**: This extension requires access to the Connect API on behalf of the visiting user to list their available content. In the content settings, add a "Connect Visitor API Key" integration.

## Setup Examples

Expand Down Expand Up @@ -79,7 +79,7 @@ Deploy this extension to your Connect server with the required environment varia

### 2. Configure Access
In the Connect dashboard:
1. Navigate to the content access panel
1. Open the content settings
2. Add a "Connect Visitor API Key" integration
3. This enables the chat application to authenticate with MCP servers

Expand Down
4 changes: 2 additions & 2 deletions extensions/simple-shiny-chat-with-mcp/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ def check_aws_bedrock_credentials():
ui.div(
ui.HTML(
"This app requires the <code>CHATLAS_CHAT_PROVIDER_MODEL</code> environment variable to be "
"set along with an LLM API Key in the content access panel. Please set them in your environment before running the app. "
"set along with an LLM API Key in the content settings. Please set them in your environment before running the app. "
'<a href="https://posit-dev.github.io/chatlas/reference/ChatAuto.html" class="setup-link">See the documentation for more details.</a>'
),
class_="setup-description",
Expand All @@ -137,7 +137,7 @@ def check_aws_bedrock_credentials():
),
ui.h2("Connect Visitor API Key", class_="setup-section-title"),
ui.div(
"Before you are able to use this app, you need to add a Connect Visitor API Key integration in the access panel.",
"Before you are able to use this app, you need to add a Connect Visitor API Key integration in the content settings.",
class_="setup-description",
),
class_="setup-card",
Expand Down
6 changes: 3 additions & 3 deletions extensions/simple-shiny-chat-with-mcp/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@
"OAuth Integrations"
],
"minimumConnectVersion": "2025.04.0",
"version": "0.0.4"
"version": "0.0.5"
},
"files": {
"requirements.txt": {
"checksum": "29cc272aac150ac0aee03574874b78cf"
},
"README.md": {
"checksum": "d41d8cd98f00b204e9800998ecf8427e"
"checksum": "123a88ebb3df0e35fc1f45e0194504ce"
},
"app.py": {
"checksum": "61ea50f9418a4aaa6d56d566175f2dd7"
"checksum": "7f4fe933bfae37297ad51d6e50bf6146"
}
}
}
2 changes: 1 addition & 1 deletion extensions/usage-metrics-dashboard/DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Package: usage-metrics-dashboard
Version: 1.0.13
Version: 1.0.14
2 changes: 1 addition & 1 deletion extensions/usage-metrics-dashboard/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ A Shiny app that helps you understand usage patterns across your work on Connect

After deploying this app, you'll need to add a Visitor API Key integration.

In the app's control panel on the right of the screen, in the Access tab, click **"Add integration"**, then select a **Visitor API Key** integration.
In the content settings, add a **Visitor API Key** integration.

If you don't see one in the list, an administrator must enable this feature on your Connect server.
See the [Admin Guide](https://docs.posit.co/connect/admin/integrations/oauth-integrations/connect/) for setup instructions.
Expand Down
4 changes: 2 additions & 2 deletions extensions/usage-metrics-dashboard/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3049,7 +3049,7 @@
"checksum": "c08950e94ccf40dd6773ea9fb554a0f5"
},
"README.md": {
"checksum": "c0599c7d23181ccb7b2e1a02db85114b"
"checksum": "95753474b3ff109ba6b8213410417753"
},
"renv.lock": {
"checksum": "1503687e203d1f5db7299f8a4a28ce06"
Expand All @@ -3069,6 +3069,6 @@
"requiredFeatures": [
"OAuth Integrations"
],
"version": "1.0.13"
"version": "1.0.14"
}
}
Loading