This repository has no description
1[server]
2# Can also be specified via environment variable `KNOT_HOSTNAME`.
3# Required! This value must be specified.
4#hostname =
5
6# Can also be specified via environment variable `KNOT_ADMINS`.
7# Required! This value must be specified.
8#admins =
9
10# Can also be specified via environment variable `KNOT_LISTEN_ADDR`.
11# Default value: "[::]:5555"
12#listen_addr = "[::]:5555"
13
14# Can also be specified via environment variable `KNOT_LISTEN_HEADER_TIMEOUT_MS`.
15# Default value: 10000
16#listen_header_timeout_ms = 10000
17
18# Can also be specified via environment variable `KNOT_LISTEN_IDLE_TIMEOUT_MS`.
19# Default value: 60000
20#listen_idle_timeout_ms = 60000
21
22# Can also be specified via environment variable `KNOT_LISTEN_MAX_CONNECTIONS`.
23# Default value: 1024
24#listen_max_connections = 1024
25
26# Can also be specified via environment variable `KNOT_LISTEN_RATE_LIMIT_PER_SECOND`.
27# Default value: 50
28#listen_rate_limit_per_second = 50
29
30# Can also be specified via environment variable `KNOT_LISTEN_RATE_LIMIT_BURST`.
31# Default value: 200
32#listen_rate_limit_burst = 200
33
34# Can also be specified via environment variable `KNOT_LISTEN_MAX_INFLIGHT_REQUESTS`.
35# Default value: 1024
36#listen_max_inflight_requests = 1024
37
38# Can also be specified via environment variable `KNOT_LISTEN_REQUEST_TIMEOUT_MS`.
39# Default value: 60000
40#listen_request_timeout_ms = 60000
41
42# Can also be specified via environment variable `KNOT_LISTEN_BODY_TIMEOUT_MS`.
43# Default value: 30000
44#listen_body_timeout_ms = 30000
45
46# Can also be specified via environment variable `KNOT_LISTEN_WRITE_REQUEST_TIMEOUT_MS`.
47# Default value: 1800000
48#listen_write_request_timeout_ms = 1800000
49
50# Can also be specified via environment variable `KNOT_INTERNAL_LISTEN_ADDR`.
51# Default value: "[::1]:5444"
52#internal_listen_addr = "[::1]:5444"
53
54# Can also be specified via environment variable `KNOT_SSH_LISTEN_ADDR`.
55# Default value: "[::]:2222"
56#ssh_listen_addr = "[::]:2222"
57
58# Can also be specified via environment variable `KNOT_SSH_HOST_KEY_FILE`.
59# Required! This value must be specified.
60#ssh_host_key_file =
61
62# Can also be specified via environment variable `KNOT_SSH_MAX_PACK_BYTES`.
63# Default value: 8589934592
64#ssh_max_pack_bytes = 8589934592
65
66# Can also be specified via environment variable `KNOT_APPVIEW_ENDPOINT`.
67# Default value: "https://tangled.org"
68#appview_endpoint = "https://tangled.org"
69
70[tls]
71# Can also be specified via environment variable `KNOT_TLS_CERT_PATH`.
72#cert_path =
73
74# Can also be specified via environment variable `KNOT_TLS_KEY_PATH`.
75#key_path =
76
77# Can also be specified via environment variable `KNOT_TLS_HTTP3`.
78# Default value: true
79#http3 = true
80
81# Can also be specified via environment variable `KNOT_TLS_ACME_ENABLED`.
82# Default value: false
83#acme_enabled = false
84
85# Can also be specified via environment variable `KNOT_TLS_ACME_CACHE_DIR`.
86#acme_cache_dir =
87
88# Can also be specified via environment variable `KNOT_TLS_ACME_CONTACT`.
89#acme_contact =
90
91# Can also be specified via environment variable `KNOT_TLS_ACME_STAGING`.
92# Default value: false
93#acme_staging = false
94
95# Can also be specified via environment variable `KNOT_TLS_MTLS_ENABLED`.
96# Default value: false
97#mtls_enabled = false
98
99# Can also be specified via environment variable `KNOT_TLS_MTLS_CLIENT_CA_PATH`.
100#mtls_client_ca_path =
101
102# Can also be specified via environment variable `KNOT_TLS_MTLS_ADMIN_SPKI_PIN`.
103#mtls_admin_spki_pin =
104
105[acl]
106# Can also be specified via environment variable `KNOT_ADMISSION`.
107# Default value: "closed"
108#admission = "closed"
109
110# Can also be specified via environment variable `KNOT_LEGACY_ADMIN_SECRET_ENV`.
111#legacy_admin_secret_env =
112
113[repo]
114# Can also be specified via environment variable `KNOT_SCAN_PATH`.
115# Required! This value must be specified.
116#scan_path =
117
118# Can also be specified via environment variable `KNOT_DEFAULT_BRANCH`.
119# Default value: "main"
120#default_branch = "main"
121
122[git]
123# Committer identity stamped on merge commits the knot creates.
124#
125# Can also be specified via environment variable `KNOT_GIT_USER_NAME`.
126#
127# Default value: "Tangled"
128#user_name = "Tangled"
129
130# Can also be specified via environment variable `KNOT_GIT_USER_EMAIL`.
131# Default value: "noreply@tangled.sh"
132#user_email = "noreply@tangled.sh"
133
134# Can also be specified via environment variable `KNOT_GIT_OBJECT_FORMAT`.
135# Default value: "sha256"
136#object_format = "sha256"
137
138[secrets]
139# Can also be specified via environment variable `KNOT_SEALED_KEY_FILE`.
140# Required! This value must be specified.
141#sealed_key_file =
142
143# Can also be specified via environment variable `KNOT_MASTER_KEY_ENV`.
144# Required! This value must be specified.
145#master_key_env =
146
147[http]
148# Can also be specified via environment variable `KNOT_HTTP_CONNECT_TIMEOUT_MS`.
149# Default value: 5000
150#connect_timeout_ms = 5000
151
152# Can also be specified via environment variable `KNOT_HTTP_READ_TIMEOUT_MS`.
153# Default value: 30000
154#read_timeout_ms = 30000
155
156# Can also be specified via environment variable `KNOT_HTTP_REQUEST_TIMEOUT_MS`.
157# Default value: 60000
158#request_timeout_ms = 60000
159
160# Can also be specified via environment variable `KNOT_HTTP_MAX_RESPONSE_BYTES`.
161# Default value: 16777216
162#max_response_bytes = 16777216
163
164[atproto]
165# Can also be specified via environment variable `KNOT_PLC_DIRECTORY`.
166# Required! This value must be specified.
167#plc_directory =
168
169[xrpc]
170# Can also be specified via environment variable `KNOT_XRPC_MAX_BODY_BYTES`.
171# Default value: 65536
172#max_body_bytes = 65536
173
174# Can also be specified via environment variable `KNOT_XRPC_MAX_RESPONSE_BYTES`.
175# Default value: 5242880
176#max_response_bytes = 5242880
177
178# Upper bound on bytes that a single archive spools,
179# across all our surfaces: the sh.tangled.repo.archive query,
180# `git archive --remote` over SSH,
181# and the smart HTTP archive route.
182# The knot will refuse writing smth that would blast an archive past this bound.
183#
184# Can also be specified via environment variable `KNOT_XRPC_MAX_ARCHIVE_BYTES`.
185#
186# Default value: 1073741824
187#max_archive_bytes = 1073741824
188
189# Can also be specified via environment variable `KNOT_XRPC_TREE_LAST_COMMIT_BUDGET_MS`.
190# Default value: 300
191#tree_last_commit_budget_ms = 300
192
193# Can also be specified via environment variable `KNOT_XRPC_BLOB_LAST_COMMIT_BUDGET_MS`.
194# Default value: 2000
195#blob_last_commit_budget_ms = 2000
196
197# Can also be specified via environment variable `KNOT_XRPC_LANGUAGES_BUDGET_MS`.
198# Default value: 1000
199#languages_budget_ms = 1000
200
201# Can also be specified via environment variable `KNOT_XRPC_LANGUAGES_PUSH_BUDGET_MS`.
202# Default value: 2000
203#languages_push_budget_ms = 2000
204
205# Body limit for the merge and mergeCheck procedures, whose patch payloads
206# routinely exceed the general XRPC body limit.
207#
208# Can also be specified via environment variable `KNOT_XRPC_MAX_PATCH_BYTES`.
209#
210# Default value: 16777216
211#max_patch_bytes = 16777216
212
213# Limit on the total decompressed size of a patch the merge procedures parse,
214# bounding binary-delta inflation and hunk expansion apart from the
215# compressed body limit above.
216#
217# Can also be specified via environment variable `KNOT_XRPC_MAX_PATCH_DECOMPRESSED_BYTES`.
218#
219# Default value: 134217728
220#max_patch_decompressed_bytes = 134217728
221
222# Can also be specified via environment variable `KNOT_XRPC_PREAUTH_BURST`.
223# Default value: 20
224#preauth_burst = 20
225
226# Can also be specified via environment variable `KNOT_XRPC_PREAUTH_REFILL_MS`.
227# Default value: 100
228#preauth_refill_ms = 100
229
230# Can also be specified via environment variable `KNOT_XRPC_PER_PEER_INFLIGHT`.
231# Default value: 8
232#per_peer_inflight = 8
233
234# Can also be specified via environment variable `KNOT_XRPC_GLOBAL_INFLIGHT`.
235# Default value: 64
236#global_inflight = 64
237
238# Can also be specified via environment variable `KNOT_XRPC_MAX_PENDING_RESERVATIONS`.
239# Default value: 256
240#max_pending_reservations = 256
241
242# Per-account limit on reserved repository keys awaiting creation, so one
243# account cannot consume the whole pending-reservation budget.
244#
245# Can also be specified via environment variable `KNOT_XRPC_PER_ACTOR_RESERVATIONS`.
246#
247# Default value: 32
248#per_actor_reservations = 32
249
250# How long a reserved repository key is held before it lapses and its
251# sealed key is reclaimed, in seconds.
252#
253# Can also be specified via environment variable `KNOT_XRPC_RESERVATION_TTL_SECS`.
254#
255# Default value: 3600
256#reservation_ttl_secs = 3600
257
258# Can also be specified via environment variable `KNOT_XRPC_FORK_MAX_PACK_BYTES`.
259# Default value: 1073741824
260#fork_max_pack_bytes = 1073741824
261
262# Can also be specified via environment variable `KNOT_XRPC_FORK_FETCH_TIMEOUT_MS`.
263# Default value: 600000
264#fork_fetch_timeout_ms = 600000
265
266# When the knot runs behind a trusted reverse proxy that terminates TLS,
267# set this to the header the proxy appends the client address to,
268# for example x-forwarded-for.
269# The knot will read the chain right -> left
270# and take the first entry that `trusted_proxies` doesn't cover.
271# Leave unset when the knot is directly exposed so the socket peer address is used.
272# Only set this when a trusted proxy overwrites or appends the header,
273# since a client can forge it otherwise.
274#
275# Can also be specified via environment variable `KNOT_XRPC_TRUSTED_PROXY_HEADER`.
276#trusted_proxy_header =
277
278# Addresses whose `trusted_proxy_header` the knot honors,
279# each a bare IP without a port or a CIDR block such as 173.245.48.0/20,
280# for ex the loopback address of a reverse proxy on the same host.
281# The knot will rate-limit a request from any other address
282# by its own socket address and ignore the header.
283# These same addresses are hops the knot will iterate over when it reads
284# the header, so list every proxy you control in the path.
285# A proxy that the knot doesn't know about becomes the entry it keys on,
286# and everyone that proxy serves will then share one rate-limit bucket.
287# The knot will read the last 32 entries of the chain, at most.
288# When the list covers all 32, the knot
289# will rate-limit by the address the request connected from.
290# Leave empty to honor the header from every peer and take its rightmost
291# entry, which is safe *only* while every route to this knot passes
292# through the proxy.
293#
294# Can also be specified via environment variable `KNOT_XRPC_TRUSTED_PROXIES`.
295#
296# Default value: []
297#trusted_proxies = []
298
299# Can also be specified via environment variable `KNOT_XRPC_EVENTS_REPLAY_BUFFER`.
300# Default value: 4096
301#events_replay_buffer = 4096
302
303# Can also be specified via environment variable `KNOT_XRPC_EVENTS_REPLAY_BYTES`.
304# Default value: 67108864
305#events_replay_bytes = 67108864
306
307# Can also be specified via environment variable `KNOT_XRPC_EVENTS_MAX_SUBSCRIBERS`.
308# Default value: 256
309#events_max_subscribers = 256
310
311# Can also be specified via environment variable `KNOT_XRPC_EVENTS_MAX_PER_PEER`.
312# Default value: 8
313#events_max_per_peer = 8
314
315[maintenance]
316# Can also be specified via environment variable `KNOT_MAINTENANCE_ENABLED`.
317# Default value: true
318#enabled = true
319
320# Can also be specified via environment variable `KNOT_MAINTENANCE_COMMIT_GRAPH`.
321# Default value: true
322#commit_graph = true
323
324# Can also be specified via environment variable `KNOT_MAINTENANCE_MULTI_PACK_INDEX`.
325# Default value: true
326#multi_pack_index = true
327
328# Can also be specified via environment variable `KNOT_MAINTENANCE_BITMAP`.
329# Default value: true
330#bitmap = true
331
332# Can also be specified via environment variable `KNOT_MAINTENANCE_INTERVAL_SECS`.
333# Default value: 21600
334#interval_secs = 21600
335
336# Can also be specified via environment variable `KNOT_MAINTENANCE_REPACK_MAX_OBJECTS`.
337# Default value: 16000000
338#repack_max_objects = 16000000
339
340# Can also be specified via environment variable `KNOT_MAINTENANCE_REPACK_GEOMETRIC_FACTOR`.
341# Default value: 2
342#repack_geometric_factor = 2
343
344# Can also be specified via environment variable `KNOT_MAINTENANCE_PRUNE_GRACE_SECS`.
345# Default value: 1209600
346#prune_grace_secs = 1209600
347
348# Can also be specified via environment variable `KNOT_MAINTENANCE_REFLOG_EXPIRE_SECS`.
349# Default value: 7776000
350#reflog_expire_secs = 7776000
351
352# Can also be specified via environment variable `KNOT_MAINTENANCE_LARGE_PUSH_BYTES`.
353# Default value: 52428800
354#large_push_bytes = 52428800
355
356[pack_cache]
357# Can also be specified via environment variable `KNOT_PACK_CACHE_ENABLED`.
358# Default value: true
359#enabled = true
360
361# Can also be specified via environment variable `KNOT_PACK_CACHE_TTL_SECS`.
362# Default value: 60
363#ttl_secs = 60
364
365# Can also be specified via environment variable `KNOT_PACK_CACHE_MAX_ENTRY_BYTES`.
366# Default value: 67108864
367#max_entry_bytes = 67108864
368
369# Can also be specified via environment variable `KNOT_PACK_CACHE_MAX_TOTAL_BYTES`.
370# Default value: 2147483648
371#max_total_bytes = 2147483648
372
373[pack]
374# Can also be specified via environment variable `KNOT_PACK_MAX_OBJECTS`.
375# Default value: 16000000
376#max_objects = 16000000
377
378# Can also be specified via environment variable `KNOT_PACK_MAX_TOTAL_BYTES`.
379# Default value: 68719476736
380#max_total_bytes = 68719476736
381
382# Can also be specified via environment variable `KNOT_PACK_SELECTION_MAX_OBJECTS`.
383# Default value: 16000000
384#selection_max_objects = 16000000
385
386# Can also be specified via environment variable `KNOT_PACK_SELECTION_TIME_BUDGET_SECS`.
387# Default value: 600
388#selection_time_budget_secs = 600
389
390[lfs]
391# Can also be specified via environment variable `KNOT_LFS_STORE_PATH`.
392#store_path =
393
394# Can also be specified via environment variable `KNOT_LFS_MAX_OBJECT_BYTES`.
395# Default value: 5368709120
396#max_object_bytes = 5368709120
397
398# Can also be specified via environment variable `KNOT_LFS_FREE_SPACE_FLOOR_BYTES`.
399# Default value: 1073741824
400#free_space_floor_bytes = 1073741824
401
402# Can also be specified via environment variable `KNOT_LFS_GC_GRACE_SECS`.
403# Default value: 1209600
404#gc_grace_secs = 1209600
405
406# Can also be specified via environment variable `KNOT_LFS_GC_INTERVAL_SECS`.
407# Default value: 21600
408#gc_interval_secs = 21600
409
410# Can also be specified via environment variable `KNOT_LFS_MAX_SSH_TRANSFERS`.
411# Default value: 16
412#max_ssh_transfers = 16
413
414# Can also be specified via environment variable `KNOT_LFS_MAX_HTTP_DOWNLOADS`.
415# Default value: 64
416#max_http_downloads = 64
417
418[resources]
419# Can also be specified via environment variable `KNOT_MAX_THREADS`.
420# Default value: 0
421#max_threads = 0
422
423# Can also be specified via environment variable `KNOT_MAX_MEMORY_BYTES`.
424# Default value: 0
425#max_memory_bytes = 0
426
427[homepage]
428# Can also be specified via environment variable `KNOT_HOMEPAGE_ENABLED`.
429# Default value: true
430#enabled = true
431
432# Can also be specified via environment variable `KNOT_HOMEPAGE_PATH`.
433#path =
434
435[ci]
436# Can also be specified via environment variable `KNOT_CI_LOGS_ADDR`.
437#logs_addr =
438
439[messages]
440[messages.push]
441# Default value: ["{knot} received {refs}."]
442#ack = ["{knot} received {refs}."]
443
444# Default value: ["", "-> Open stinky pull request for this branch:", " {url}", ""]
445#pull_request = ["", "-> Open stinky pull request for this branch:", " {url}", ""]
446
447# Default value: ["pipeline compiled with no diagnostics"]
448#pipeline_clean = ["pipeline compiled with no diagnostics"]
449
450# Default value: ["no pipelines to compile"]
451#pipeline_none = ["no pipelines to compile"]
452
453# Default value: ["-> Browse CI logs in your terminal:", " ssh -t -p {port} {host} {repo} {sha}"]
454#ci_logs = ["-> Browse CI logs in your terminal:", " ssh -t -p {port} {host} {repo} {sha}"]
455
456[messages.fetch]
457# Default value: ["Thanks for using {knot}!"]
458#motd = ["Thanks for using {knot}!"]
459
460# Default value: ["Enumerating objects: {count}, done."]
461#enumerating = ["Enumerating objects: {count}, done."]
462
463# Default value: ["Total {count}, done."]
464#total = ["Total {count}, done."]
465
466# Default value: "knot: {error}"
467#fatal = "knot: {error}"
468
469[messages.reject]
470# Default value: "refs/cobs/* and refs/hidden/* are reserved and cannot be pushed"
471#reserved_refs = "refs/cobs/* and refs/hidden/* are reserved and cannot be pushed"
472
473# Default value: "existing refs/cobs/* object cannot be modified or deleted over the wire"
474#cob_create_only = "existing refs/cobs/* object cannot be modified or deleted over the wire"
475
476# Default value: "refs/cobs/* stores append-only collaborative objects and cannot be deleted"
477#cob_delete = "refs/cobs/* stores append-only collaborative objects and cannot be deleted"
478
479# Default value: "refs/hidden/* is reserved for server-side fork staging and cannot be pushed"
480#hidden_reserved = "refs/hidden/* is reserved for server-side fork staging and cannot be pushed"
481
482# Default value: "collaborative-object verification failed: {error}"
483#cob_verification = "collaborative-object verification failed: {error}"
484
485# Default value: "reference already exists"
486#ref_exists = "reference already exists"
487
488# Default value: "stale info: old value doesn't match"
489#stale_old_value = "stale info: old value doesn't match"
490
491# Default value: "missing necessary objects"
492#missing_objects = "missing necessary objects"
493
494# Default value: "missing necessary objects for {ref}"
495#missing_objects_for = "missing necessary objects for {ref}"
496
497# Default value: "atomic transaction failed"
498#atomic_failed = "atomic transaction failed"
499
500# Default value: "atomic push aborted"
501#atomic_aborted = "atomic push aborted"
502
503# Default value: "authorization unavailable"
504#authorization_unavailable = "authorization unavailable"
505
506# Default value: "unpacker error"
507#unpacker_error = "unpacker error"
508
509# Default value: "ref snapshot unavailable"
510#ref_snapshot_unavailable = "ref snapshot unavailable"
511
512# Default value: "object migration failed"
513#object_migration_failed = "object migration failed"
514
515[messages.ssh]
516# Default value: ["Hi {user}! You're authenticated to {knot} knot.", "This knot serves git over ssh, so there's no shell here. :P", "Clone repo with: git clone {knot}:<repoDID>"]
517#greeting = ["Hi {user}! You're authenticated to {knot} knot.", "This knot serves git over ssh, so there's no shell here. :P", "Clone repo with: git clone {knot}:<repoDID>"]
518
519# Default value: "knot: unsupported command"
520#unsupported_command = "knot: unsupported command"
521
522# Default value: "knot: too many concurrent operations from your address, try again shortly"
523#too_many_operations = "knot: too many concurrent operations from your address, try again shortly"
524
525# Default value: "knot: repository not found"
526#repo_not_found = "knot: repository not found"
527
528# Default value: "knot: repository index is warming, retry shortly"
529#index_warming = "knot: repository index is warming, retry shortly"
530
531# Default value: "knot: LFS isn't enabled on this knot"
532#lfs_disabled = "knot: LFS isn't enabled on this knot"
533
534# Default value: "knot: your ssh key isn't registered to a user authorized to push here. If you offer several keys, make sure the registered one is offered first."
535#key_not_registered = "knot: your ssh key isn't registered to a user authorized to push here. If you offer several keys, make sure the registered one is offered first."
536
537# Default value: "knot: you aren't authorized to push to this repository."
538#push_denied = "knot: you aren't authorized to push to this repository."
539
540# Default value: "knot: server is shutting down"
541#shutting_down = "knot: server is shutting down"
542
543# Default value: "knot: malformed upload-archive request"
544#archive_malformed = "knot: malformed upload-archive request"
545
546# Default value: "knot: upload-archive request timed out"
547#archive_timeout = "knot: upload-archive request timed out"
548
549# Default value: "knot: upload-archive failed"
550#archive_failed = "knot: upload-archive failed"
551
552# Default value: "knot: cannot advertise refs"
553#advertise_failed = "knot: cannot advertise refs"
554
555# Default value: "knot: push exceeds configured size limit"
556#push_too_large = "knot: push exceeds configured size limit"
557
558# Default value: "knot: receive exceeded its time budget"
559#receive_deadline = "knot: receive exceeded its time budget"
560
561# Default value: "knot: malformed pack stream"
562#malformed_pack = "knot: malformed pack stream"
563
564# Default value: "knot: receive read error"
565#receive_read_error = "knot: receive read error"
566
567# Default value: "knot: receive stream ended early"
568#receive_ended_early = "knot: receive stream ended early"
569
570# Default value: "knot: receive-pack failed"
571#receive_failed = "knot: receive-pack failed"
572
573[messages.http]
574# Default value: "you aren't authorized to push to this repository"
575#push_denied = "you aren't authorized to push to this repository"
576
577# Default value: "repository not found"
578#repo_not_found = "repository not found"
579
580# Default value: "push exceeds the configured size limit"
581#push_too_large = "push exceeds the configured size limit"
582
583# Default value: "malformed pack stream: {error}"
584#malformed_pack = "malformed pack stream: {error}"
585
586# Default value: "receive stream ended early"
587#receive_ended_early = "receive stream ended early"
588
589[messages.lfs]
590# Default value: "invalid LFS oid {value}"
591#invalid_oid = "invalid LFS oid {value}"
592
593# Default value: "oid mismatch, declared {declared}, computed {computed}"
594#hash_mismatch = "oid mismatch, declared {declared}, computed {computed}"
595
596# Default value: "size mismatch, declared {declared}, received {received}"
597#size_mismatch = "size mismatch, declared {declared}, received {received}"
598
599# Default value: "object size {declared} exceeds limit {limit}"
600#size_limit_exceeded = "object size {declared} exceeds limit {limit}"
601
602# Default value: "free space {free} below floor {floor}"
603#free_space_denied = "free space {free} below floor {floor}"
604
605# Default value: "object {oid} not found"
606#not_found = "object {oid} not found"
607
608# Default value: "protocol framing fault: {detail}"
609#framing = "protocol framing fault: {detail}"
610
611# Default value: "too many {what} in one message, limit {limit}"
612#too_many = "too many {what} in one message, limit {limit}"
613
614# Default value: "unknown command {command}"
615#unknown_command = "unknown command {command}"
616
617# Default value: "unsupported version {version}"
618#unsupported_version = "unsupported version {version}"
619
620# Default value: "unsupported hash algorithm {algorithm}"
621#unsupported_hash = "unsupported hash algorithm {algorithm}"
622
623# Default value: "put-object isn't allowed on a download channel"
624#put_on_download = "put-object isn't allowed on a download channel"
625
626# Default value: "verify-object isn't allowed on a download channel"
627#verify_on_download = "verify-object isn't allowed on a download channel"
628
629# Default value: "get-object isn't allowed on an upload channel"
630#get_on_upload = "get-object isn't allowed on an upload channel"
631
632# Default value: "put-object is missing its object body"
633#put_no_body = "put-object is missing its object body"