From 6bee694af176d457f5bd59960339b15ae1f0c78f Mon Sep 17 00:00:00 2001 From: tdstein Date: Wed, 9 Jul 2025 10:17:15 -0400 Subject: [PATCH 1/2] feat: add nameservice inspector --- extensions/nameservice-inspector/.gitignore | 2 ++ extensions/nameservice-inspector/.python-version | 1 + extensions/nameservice-inspector/README.md | 0 extensions/nameservice-inspector/main.py | 16 ++++++++++++++++ extensions/nameservice-inspector/pyproject.toml | 15 +++++++++++++++ .../nameservice-inspector/requirements.txt | 2 ++ 6 files changed, 36 insertions(+) create mode 100644 extensions/nameservice-inspector/.gitignore create mode 100644 extensions/nameservice-inspector/.python-version create mode 100644 extensions/nameservice-inspector/README.md create mode 100644 extensions/nameservice-inspector/main.py create mode 100644 extensions/nameservice-inspector/pyproject.toml create mode 100644 extensions/nameservice-inspector/requirements.txt diff --git a/extensions/nameservice-inspector/.gitignore b/extensions/nameservice-inspector/.gitignore new file mode 100644 index 00000000..40144393 --- /dev/null +++ b/extensions/nameservice-inspector/.gitignore @@ -0,0 +1,2 @@ +.posit +.venv diff --git a/extensions/nameservice-inspector/.python-version b/extensions/nameservice-inspector/.python-version new file mode 100644 index 00000000..24ee5b1b --- /dev/null +++ b/extensions/nameservice-inspector/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/extensions/nameservice-inspector/README.md b/extensions/nameservice-inspector/README.md new file mode 100644 index 00000000..e69de29b diff --git a/extensions/nameservice-inspector/main.py b/extensions/nameservice-inspector/main.py new file mode 100644 index 00000000..29e20398 --- /dev/null +++ b/extensions/nameservice-inspector/main.py @@ -0,0 +1,16 @@ +def main(): + import streamlit as st + + from posit import connect + + client = connect.Client() + + st.subheader("Nameservice Users") + st.table(client.get("/v1/nameservice/users").json()) + + st.subheader("Nameservice Groups") + st.table(client.get("/v1/nameservice/groups").json()) + + +if __name__ == "__main__": + main() diff --git a/extensions/nameservice-inspector/pyproject.toml b/extensions/nameservice-inspector/pyproject.toml new file mode 100644 index 00000000..2ad2ddc2 --- /dev/null +++ b/extensions/nameservice-inspector/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "nameservice-inspector" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "posit-sdk>=0.10.0", + "streamlit>=1.46.0", +] + +[dependency-groups] +dev = [ + "watchdog>=6.0.0", +] diff --git a/extensions/nameservice-inspector/requirements.txt b/extensions/nameservice-inspector/requirements.txt new file mode 100644 index 00000000..d8407a6e --- /dev/null +++ b/extensions/nameservice-inspector/requirements.txt @@ -0,0 +1,2 @@ +posit-sdk +streamlit From 922400fadcabbd81cd50957368e9f21bd3973dbe Mon Sep 17 00:00:00 2001 From: tdstein Date: Wed, 9 Jul 2025 10:20:50 -0400 Subject: [PATCH 2/2] chore: add manifest file --- .../nameservice-inspector/manifest.json | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 extensions/nameservice-inspector/manifest.json diff --git a/extensions/nameservice-inspector/manifest.json b/extensions/nameservice-inspector/manifest.json new file mode 100644 index 00000000..465267e3 --- /dev/null +++ b/extensions/nameservice-inspector/manifest.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "locale": "en_US.UTF-8", + "metadata": { + "appmode": "python-streamlit", + "entrypoint": "main" + }, + "extension": { + "name": "nameservice-inspector", + "title": "Nameservice Inspector", + "description": "A simple extension to inspect the nameservice users and groups in Posit Connect.", + "homepage": "https://github.com/posit-dev/connect-extensions/tree/main/extensions/nameservice-inspector", + "category": "", + "tags": [], + "minimumConnectVersion": "2025.06.0", + "version": "0.0.0" + }, + "python": { + "version": "3.11.3", + "package_manager": { + "name": "pip", + "version": "24.3.1", + "package_file": "requirements.txt" + } + }, + "files": { + "requirements.txt": { + "checksum": "2b49861a6d9371710955aca23f39e467" + }, + ".gitignore": { + "checksum": "b138f14957efecc69df2976ccdc3ab65" + }, + ".python-version": { + "checksum": "789ee353b44223a8ed8031aa190631dd" + }, + "README.md": { + "checksum": "d41d8cd98f00b204e9800998ecf8427e" + }, + "main.py": { + "checksum": "7bb8b531f6ac2d228625124bc478344b" + }, + "pyproject.toml": { + "checksum": "ece9f38054d0a788da7c61b80d1b8c77" + }, + "uv.lock": { + "checksum": "3ed51c4e76039c4af17288137fac0941" + } + } +}