test-managed-acl.sh raw
1 #!/bin/bash
2
3 # Test script for Managed ACL functionality
4 # This script runs all the managed ACL tests to ensure policy enforcement works correctly
5
6 set -e
7
8 # Pure Go build with purego - no CGO needed
9 # libsecp256k1 is loaded dynamically at runtime if available
10 export CGO_ENABLED=0
11 if [ -f "$(dirname "$0")/../pkg/crypto/p8k/libsecp256k1.so" ]; then
12 export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(dirname "$0")/../pkg/crypto/p8k"
13 fi
14
15 echo "๐งช Running Managed ACL Tests"
16 echo "=============================="
17
18 # Change to the project root
19 cd "$(dirname "$0")"
20
21 echo ""
22 echo "๐ Test Categories:"
23 echo "1. Managed ACL Policy Tests (pkg/acl/managed_minimal_test.go)"
24 echo "2. HTTP API Tests (app/handle-nip86_minimal_test.go)"
25 echo ""
26
27 # Run managed ACL policy tests
28 echo "๐ Running Managed ACL Policy Tests..."
29 go test -v ./pkg/acl -run TestManagedACL_BasicFunctionality
30 if [ $? -eq 0 ]; then
31 echo "โ
Managed ACL Policy Tests PASSED"
32 else
33 echo "โ Managed ACL Policy Tests FAILED"
34 exit 1
35 fi
36
37 echo ""
38
39 # Run HTTP API tests
40 echo "๐ Running HTTP API Tests..."
41 go test -v ./app -run TestHandleNIP86Management_Basic
42 if [ $? -eq 0 ]; then
43 echo "โ
HTTP API Tests PASSED"
44 else
45 echo "โ HTTP API Tests FAILED"
46 exit 1
47 fi
48
49 echo ""
50 echo "๐ All Managed ACL Tests PASSED!"
51 echo "=============================="
52 echo ""
53 echo "โ
Policy enforcement is working correctly for:"
54 echo " - EVENT envelopes (event submission)"
55 echo " - REQ envelopes (event queries)"
56 echo " - HTTP API endpoints (NIP-86 management)"
57 echo ""
58 echo "๐ Security features tested:"
59 echo " - Banned events are rejected"
60 echo " - Banned pubkeys are rejected"
61 echo " - Blocked IPs are rejected"
62 echo " - Disallowed event kinds are rejected"
63 echo " - Owner-only access to management API"
64 echo " - NIP-98 authentication validation"
65 echo " - AuthRequired configuration"
66 echo ""
67 echo "๐ The managed ACL system is ready for production use!"
68