1
+ (version 1)
2
+ ; Deny everything by default
3
+ (deny default)
4
+
5
+ ; Get fonts
6
+ (import "system.sb")
7
+
8
+ ; Helpers
9
+ (define (param-regex param-name param-relative-regex)
10
+ (regex (string-append "^" (regex-quote (param param-name)) param-relative-regex)))
11
+ (define (param-subpath param-name param-relative-subpath)
12
+ (subpath (string-append (param param-name) param-relative-subpath)))
13
+ (define workspace
14
+ (param "workspace"))
15
+
16
+ ; Read
17
+ (allow file-read-metadata
18
+ (subpath "/"))
19
+ (allow file-read*
20
+ (subpath workspace)
21
+ (path "/")
22
+ (path "/private/etc/ssl/openssl.cnf")
23
+ (path "/Library/Preferences/com.apple.dt.Xcode.plist")
24
+ (path "/dev/dtracehelper")
25
+ (path "/dev/fd")
26
+ (path "/dev/null")
27
+ (path "/dev/ptmx")
28
+ (regex #"^/dev/tty.*")
29
+ (path "/etc/shells")
30
+ (path "/private/etc/shells")
31
+ (path "/private/etc/ssl/cert.pem")
32
+ (path "/usr/local/share/git-core/gitconfig")
33
+ (subpath "/Users/award999/repos/sourcekit-lsp/.build") ; REMOVE
34
+ (regex #"^/Users/[^/]+/.gitconfig$")
35
+ (regex #"^/Users/[^/]+/.sourcekit-lsp.*")
36
+ (regex #"^/Users/[^/]+/.swiftpm.*")
37
+ (regex #"^/Users/[^/]+/Library/org.swift.swiftpm.*")
38
+ (regex #"^/Users/[^/]+/Library/Developer/Toolchains")
39
+ (regex #"^/Users/[^/]+/Library/Developer/Xcode/DerivedData.*")
40
+ (regex #"^/Users/[^/]+/Library/Caches/org.swift.swiftpm.*")
41
+ (regex #"^/Users/[^/]+/Library/Application Support/Code.*")
42
+ (regex #"^/Users/[^/]+/Library/Saved Application State/com.microsoft.VSCode.savedState.*")
43
+ (regex #"^/private/var/folders/[^/]+/[^/]+/.+")
44
+ (subpath "/Library/Developer/Toolchains")
45
+ (subpath "/Applications/Xcode.app")
46
+ (subpath "/Applications/Xcode-beta.app")
47
+ (subpath "/bin")
48
+ (subpath "/usr/bin")
49
+ (subpath "/usr/libexec/path_helper")
50
+ (regex #"^/Users/[^/]+/.vscode/argv.json")
51
+ )
52
+
53
+ (allow mach-lookup)
54
+ (allow mach-register)
55
+
56
+ ; Write
57
+ (allow file-write*
58
+ (subpath workspace)
59
+ (path "/dev/null")
60
+ (path "/dev/ptmx")
61
+ (regex #"^/dev/tty.*")
62
+ (regex #"^/Users/[^/]+/.sourcekit-lsp.*")
63
+ (regex #"^/Users/[^/]+/Library/org.swift.swiftpm.*")
64
+ (regex #"^/Users/[^/]+/Library/Caches/org.swift.swiftpm.*")
65
+ (regex #"^/Users/[^/]+/Library/Developer/Xcode/DerivedData.*")
66
+ (regex #"^/Users/[^/]+/Library/Application Support/Code.*")
67
+ (regex #"^/private/var/folders/[^/]+/[^/]+/.+")
68
+ (regex #"^/Users/[^/]+/.vscode/argv.json")
69
+ )
70
+
71
+ ; Execute
72
+ (allow process-exec*)
73
+ (allow process-fork)
74
+
75
+ ; Network
76
+ (allow system-socket)
77
+ (allow network-outbound
78
+ (path "/private/var/run/mDNSResponder")
79
+ (remote tcp4 "*:443")
80
+ )
81
+
82
+ ; Open VSCode window
83
+ (allow file-ioctl)
84
+ ; (allow file-issue-extension)
85
+ (allow iokit-open-user-client)
86
+ ; (allow system-fsctl) ; HFSIOC_SET_HOTFILE_STATE
87
+
88
+ ; VSCode sockets
89
+ (allow network*
90
+ (param-regex "workspace" "/.vscode-test/user-data/1\.[0-9]+-main\.sock")
91
+ )
92
+
93
+ ; VSCode terminal
94
+ (allow pseudo-tty)
95
+
96
+ ; SourceKit-LSP
97
+ (allow job-creation)
98
+
99
+ ; JSON language server
100
+ (allow signal)
101
+
102
+ ; Uncomment when connected to Ottawa office network
103
+ (system-network)
0 commit comments