pyvider
2025-01-19
Refined rpcplugin client gRPC channel creation with transport-specific
43 files · 1,588+ · 564-
Transport-Specific gRPC Channel Creation
38 files changed
client.pyUpdated client.py (+112/-86 lines)config.pyUpdated config.py (+1/-1 lines)README.mdUpdated README.md (+41/-6 lines)2025-01-19-1108-claude.mdAdded 2025-01-19-1108-claude.md (+18 lines)greeterUpdated greeter (+0/-0 lines)build.shUpdated build.sh (+2/-2 lines)comments.mdUpdated comments.md (+1/-1 lines)debugging-2025-01-20-1256.mdAdded debugging-2025-01-20-1256.md (+8 lines)env.shUpdated env.sh (+2/-2 lines)go-kv-example-log.txtRemoved go-kv-example-log.txt (-1 lines)kv-clientUpdated kv-client (+0/-0 lines)kv-data-helloUpdated kv-data-hello (+1/-1 lines)kv-go-serverUpdated kv-go-server (+0/-0 lines)example-kv-go-client-log-client-cert.mdAdded example-kv-go-client-log-client-cert.md (+48 lines)example-kv-go-client-log-server-cert.txtAdded example-kv-go-client-log-server-cert.txt (+48 lines)example-kv-go-client-log.txtAdded example-kv-go-client-log.txt (+36 lines)example-py-client-failure-client-cert.mdAdded example-py-client-failure-client-cert.md (+48 lines)example-py-client-failure-server-cert.mdAdded example-py-client-failure-server-cert.md (+48 lines)example-py-client-failure.txtAdded example-py-client-failure.txt (+176 lines)main.goUpdated main.go (+1/-1 lines)main.goUpdated main.go (+1/-1 lines)py-client.pyAdded py-client.py (+153 lines)certutil.goUpdated certutil.go (+18/-1 lines)grpc.goUpdated grpc.go (+2/-2 lines)interface.goUpdated interface.go (+3/-3 lines)test_kv_impl_1638.pyUpdated test_kv_impl_1638.py (+1/-1 lines)handshake.pyUpdated handshake.py (+7/-3 lines)go-client-get.txtRemoved go-client-get.txt (-137 lines)go-client-put.txtRemoved go-client-put.txt (-136 lines)rpcplugin.sublime-projectAdded rpcplugin.sublime-project (+8 lines)server.pyUpdated server.py (+13/-6 lines)run_server.pyUpdated run_server.py (+2/-2 lines)run_tcp_server.pyUpdated run_tcp_server.py (+4/-4 lines)run_unix_server.pyUpdated run_unix_server.py (+4/-4 lines)test_handshake_magic_cookie.pyUpdated test_handshake_magic_cookie.py (+1/-1 lines)x_test_server.pyUpdated x_test_server.py (+2/-2 lines)tcp.pyUpdated tcp.py (+6/-6 lines)unix.pyUpdated unix.py (+5/-5 lines)
- Split
_create_grpc_channelinto separate code paths for Unix and TCP transports decouple internal48 files
README.mdoutput.pypriming.mdclient.pyconfig.pyREADME.md2025-01-19-1108-claude.mdgreeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.pyhandshake.pygo-client-get.txtgo-client-put.txtrpcplugin.sublime-projectsecurity.pyserver.pyconftest.pyrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pytest_security.pyx_test_server.pytcp.pyunix.py
- Unix path uses
ssl_channel_credentialswith server cert as root, client key/cert encoded as ASCII, andgrpc.ssl_target_name_overrideset tolocalhostinterface internal1 file
grpc.ssl_target_name_override
- TCP path uses similar credential setup with
grpc.so_reuseportoption interface behavioral1 file
grpc.so_reuseport
- Changed method signature to take no arguments (uses instance attributes
client_cert_pem,client_key_pemdirectly) decouple internal48 files
README.mdoutput.pypriming.mdclient.pyconfig.pyREADME.md2025-01-19-1108-claude.mdgreeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.pyhandshake.pygo-client-get.txtgo-client-put.txtrpcplugin.sublime-projectsecurity.pyserver.pyconftest.pyrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pytest_security.pyx_test_server.pytcp.pyunix.py
- Removed the intermediate
_encode_pemhelper function, encoding PEM strings inline decouple internal48 files
README.mdoutput.pypriming.mdclient.pyconfig.pyREADME.md2025-01-19-1108-claude.mdgreeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.pyhandshake.pygo-client-get.txtgo-client-put.txtrpcplugin.sublime-projectsecurity.pyserver.pyconftest.pyrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pytest_security.pyx_test_server.pytcp.pyunix.py
RPCPluginConfig Singleton
1 file changed
config.auto_mtlsUpdated config.auto_mtls
- Made
RPCPluginConfiga singleton via__new__with_instanceclass variable decouple internal45 files
client.pyconfig.pyREADME.md2025-01-19-1108-claude.mdgreeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.pyhandshake.pygo-client-get.txtgo-client-put.txtrpcplugin.sublime-projectsecurity.pyserver.pyconftest.pyrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pytest_security.pyx_test_server.pytcp.pyunix.py
- Config now auto-validates on first initialization and skips re-init on subsequent instantiations
baseline
architectural
45 files
client.pyconfig.pyREADME.md2025-01-19-1108-claude.mdgreeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.pyhandshake.pygo-client-get.txtgo-client-put.txtrpcplugin.sublime-projectsecurity.pyserver.pyconftest.pyrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pytest_security.pyx_test_server.pytcp.pyunix.py
- Client
start()now checksconfig.auto_mtlsbefore generating certificates baseline internal1 file
config.auto_mtls
- Added
PLUGIN_SUPenvironment variable pass-through in client start baseline internal45 files
client.pyconfig.pyREADME.md2025-01-19-1108-claude.mdgreeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.pyhandshake.pygo-client-get.txtgo-client-put.txtrpcplugin.sublime-projectsecurity.pyserver.pyconftest.pyrun_server.pyrun_tcp_server.pyrun_unix_server.pytest_client.pytest_client_grpc.pytest_handshake_magic_cookie.pytest_security.pyx_test_server.pytcp.pyunix.py
Security Module
1 file changed
security.pyUpdated security.py (+390/-147 lines)
- Renamed
generate_rsa_keypairtogenerate_keypairinsecurity.pydecouple internal1 file
security.py
- Added
raw_base64_to_pem_certfunction for converting raw base64 certificate data to PEM format harden errata1 file
security.py
- Updated client imports to use new function names
instantiate
internal
1 file
security.py
Go Examples
1 file changed
main.goUpdated main.go (+1/-1 lines)
- Reverted Go client and server examples back to
KVGRPCPluginnaming (fromKVRPCPlugin) decouple internal24 files
greeterbuild.shmain.gocomments.mddebugging-2025-01-20-1256.mdenv.shgo-kv-example-log.txtkv-clientkv-data-hellokv-go-servergo-kv-client-automtls-client-cert.txtgo-kv-client-automtls-disabled.txtgo-kv-client-automtls-log.txtgo-kv-client-automtls-server-cert.txtpy-client-client-cert.txtpy-client-log.txtpy-client-server-cert.txtmain.gomain.gopy-client.pycertutil.gogrpc.gointerface.gotest_kv_impl_1638.py
- Updated
certgen/main.goto exportPLUGIN_TRANSPORTS='unix,tcp'instead of'grpc'interface internal1 file
main.go
Misc: bfiles
3 files changed
README.mdAdded README.md (+240 lines)output.pyUpdated output.py (+1/-1 lines)priming.mdAdded priming.md (+135 lines)
- Commented out “Total Excluded Files” line in
src/bfiles/output.pysummary generation decouple behavioral1 file
output.py