Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
69ce971
Implement transparent proxying for KeyValue pattern with gRPC data plane
jrepp Oct 20, 2025
ab3e05d
Implement transparent proxying for KeyValue pattern with gRPC reflect…
jrepp Oct 20, 2025
f1435ae
Add launcher callback protocol with dynamic port allocation
jrepp Oct 20, 2025
4f9d848
Fix Rust formatting issues
jrepp Oct 20, 2025
102f330
Fix Clippy lint errors in prism-proxy
jrepp Oct 20, 2025
d8a5238
Fix KeyValue unit tests to expect unavailable status without backend
jrepp Oct 21, 2025
f6079ba
Add proxy-integration-runner for end-to-end integration testing
jrepp Oct 21, 2025
9ef4e88
Fix Rust formatting to pass CI lint checks
jrepp Oct 21, 2025
6437d62
Clean up documentation: Create MEMO-038 and consolidate integration t…
jrepp Oct 21, 2025
66ad605
Update changelog: Add launcher callback protocol info and compress en…
jrepp Oct 21, 2025
e72c9eb
Fix MEMO-038 frontmatter and code block formatting
jrepp Oct 21, 2025
d6eabb0
Fix changelog links to use absolute paths with document IDs
jrepp Oct 21, 2025
a64fb48
Fix prismctl build failure by updating go.mod dependencies
jrepp Oct 21, 2025
3c35b96
Merge main into feature/transparent-proxy-ttl-keyval
jrepp Jan 3, 2026
b87076e
Fix duplicate variable declaration in build.rs
jrepp Jan 3, 2026
2ec575e
Merge branch 'main' into feature/transparent-proxy-ttl-keyval
mergify[bot] Jan 3, 2026
6f398cc
Merge branch 'main' into feature/transparent-proxy-ttl-keyval
mergify[bot] Jan 5, 2026
7571087
Merge branch 'main' into feature/transparent-proxy-ttl-keyval
mergify[bot] Jan 6, 2026
75b7b03
Merge branch 'main' into feature/transparent-proxy-ttl-keyval
mergify[bot] Jan 12, 2026
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
4 changes: 4 additions & 0 deletions cmd/prism-launcher/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,13 @@ func main() {
eventPublisher = &launcher.NoopEventPublisher{}
}

// Create control service for process callbacks
controlService := launcher.NewControlService(*launcherID, adminClient)

// Create gRPC server
grpcServer := grpc.NewServer()
pb.RegisterPatternLauncherServer(grpcServer, service)
pb.RegisterLauncherControlServer(grpcServer, controlService)

// Enable reflection for grpcurl
reflection.Register(grpcServer)
Expand Down
54 changes: 54 additions & 0 deletions test_transparent_proxy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#!/bin/bash
# Simple test script for transparent proxy using grpcurl

set -e

echo "🧪 Testing Transparent Proxy - KeyValue Pattern"
echo "================================================"
echo ""

# Test Set operation
echo "1. Testing Set operation..."
grpcurl -plaintext -d '{"key":"test-key","value":"dGVzdC12YWx1ZQ=="}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueBasicInterface/Set

echo "✅ Set completed"
echo ""

# Test Get operation
echo "2. Testing Get operation..."
grpcurl -plaintext -d '{"key":"test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueBasicInterface/Get

echo "✅ Get completed"
echo ""

# Test Exists operation
echo "3. Testing Exists operation..."
grpcurl -plaintext -d '{"key":"test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueBasicInterface/Exists

echo "✅ Exists completed"
echo ""

# Test Delete operation
echo "4. Testing Delete operation..."
grpcurl -plaintext -d '{"key":"test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueBasicInterface/Delete

echo "✅ Delete completed"
echo ""

# Test Get on deleted key (should not be found)
echo "5. Testing Get on deleted key..."
grpcurl -plaintext -d '{"key":"test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueBasicInterface/Get

echo "✅ Get on deleted key completed"
echo ""

echo "================================================"
echo "✅ All tests passed!"
echo ""
echo "Transparent proxying is working:"
echo " Client → prism-proxy:9090 → keyvalue-runner:9095 → memstore"
49 changes: 49 additions & 0 deletions test_ttl_operations.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash
# Test TTL operations through transparent proxy

set -e

echo "🧪 Testing Transparent Proxy - KeyValue TTL Operations"
echo "================================================"
echo ""

# Test 1: Set a key
echo "1. Setting a key..."
grpcurl -plaintext -d '{"key":"ttl-test-key","value":"dGVzdC12YWx1ZQ=="}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueBasicInterface/Set
echo "✅ Key set"
echo ""

# Test 2: Set expiration (5 seconds)
echo "2. Setting TTL to 5 seconds..."
grpcurl -plaintext -d '{"key":"ttl-test-key","ttl_seconds":5}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueTTLInterface/Expire
echo "✅ TTL set"
echo ""

# Test 3: Get TTL
echo "3. Getting TTL..."
grpcurl -plaintext -d '{"key":"ttl-test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueTTLInterface/GetTTL
echo "✅ GetTTL completed"
echo ""

# Test 4: Persist (remove expiration)
echo "4. Persisting key (removing expiration)..."
grpcurl -plaintext -d '{"key":"ttl-test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueTTLInterface/Persist
echo "✅ Persist completed"
echo ""

# Test 5: Get TTL again (should be -1 for no expiration)
echo "5. Getting TTL after persist..."
grpcurl -plaintext -d '{"key":"ttl-test-key"}' \
localhost:9090 prism.interfaces.keyvalue.KeyValueTTLInterface/GetTTL
echo "✅ GetTTL after persist completed"
echo ""

echo "================================================"
echo "✅ All TTL tests passed!"
echo ""
echo "TTL operations working through transparent proxy:"
echo " Client → prism-proxy:9090 → keyvalue-runner:9095 → memstore"
Loading