diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md
new file mode 100644
index 00000000..dcd237ba
--- /dev/null
+++ b/.github/actions/spelling/README.md
@@ -0,0 +1,15 @@
+# check-spelling/check-spelling configuration
+
+File | Purpose | Format | Info
+-|-|-|-
+[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary)
+[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow)
+[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject)
+[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes)
+[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only)
+[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
+[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect)
+[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice)
+
+Note: you can replace any of these files with a directory by the same name (minus the suffix)
+and then include multiple files inside that directory (with that suffix) to merge multiple files together.
diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md
new file mode 100644
index 00000000..31156de7
--- /dev/null
+++ b/.github/actions/spelling/advice.md
@@ -0,0 +1,27 @@
+
+
+
+If it relates to a ...
+well-formed pattern
+
+See if there's a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it.
+
+If not, try writing one and adding it to the `patterns.txt` file.
+
+Patterns are Perl 5 Regular Expressions - you can [test](
+https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
+
+Note that patterns can't match multiline strings.
+
+binary-ish string
+
+Please add a file path to the `excludes.txt` file instead of just accepting the garbage.
+
+File paths are Perl 5 Regular Expressions - you can [test](
+https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
+
+`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
+../tree/HEAD/README.md) (on whichever branch you're using).
+
+
+
diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt
new file mode 100644
index 00000000..ce9f3b99
--- /dev/null
+++ b/.github/actions/spelling/excludes.txt
@@ -0,0 +1,17 @@
+# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
+(?:^|/)(?i)COPYRIGHT
+(?:^|/)(?i)LICEN[CS]E
+(?:^|/)package(?:-lock|)\.json$
+(?:^|/)vendor/
+ignore$
+\.avi$
+\.ico$
+\.jpe?g$
+\.lock$
+\.map$
+\.min\.
+\.mod$
+\.mp[34]$
+\.png$
+\.wav$
+^\.github/
diff --git a/.github/actions/spelling/expect/_corpTerms.txt b/.github/actions/spelling/expect/_corpTerms.txt
new file mode 100644
index 00000000..f78fa441
--- /dev/null
+++ b/.github/actions/spelling/expect/_corpTerms.txt
@@ -0,0 +1,1697 @@
+# https://github.com/streetsidesoftware/cspell-dicts/tree/main/dictionaries/software-terms
+
+Actionlint
+ActiveMQ
+AirWatch
+Alibaba
+Android
+Anka
+Ansible
+Antergos
+Apparmor
+Appveyor
+Artifactory
+asdf
+Atlaskit
+Avro
+Bacula
+Bitbucket
+Cloudera
+Cloudkick
+CloudStack
+CouchDB
+Crashlytics
+CSharpier
+cspell
+cspellcache
+DigitalOcean
+DragonFlyBSD
+El
+Capitan
+Facebook
+Gitkraken
+Gitpod
+GMail
+Google
+Halp
+HipChat
+Hunspell
+Hunspell
+Jira
+MegaLinter
+mongod
+Podman
+PyCharm
+Secretlint
+secretlintignore
+Sharpier
+snmpd
+snmptrapd
+Sourcetree
+Trello
+yamllint
+Zuul
+
+abcde
+abcdef
+abcdefg
+abcdefgh
+abcdefghijklmnopqrstuvwxyz
+accessor
+acos
+activesupport
+activitybar
+ada
+addon
+addons
+addr
+adhoc
+Affero
+aggregation
+aggregations
+aggregator
+aggregators
+airbrake
+algo
+algolia
+algos
+allowlist
+allowlisted
+allowlisting
+allowlists
+alt
+anonymise
+anonymize
+antialias
+antialiased
+anycast
+api
+apis
+app
+append
+appid
+approximant
+arborescence
+arccosine
+architected
+arcsine
+arctangent
+arg
+argc
+args
+argv
+arial
+array
+arraylength
+asc
+asciidoc
+asin
+asm
+assembly
+associable
+ast
+asts
+asynchronous
+asynchronously
+atan
+ATAPI
+atime
+atob
+attr
+attrs
+auditable
+auditpol
+auth
+autocomplete
+autocompleted
+autocompletion
+autoconf
+autodetect
+autogenerate
+autogenerated
+autogenerates
+autolink
+autolinked
+autolinking
+autostart
+autosuggest
+awaitable
+awaitables
+backend
+backends
+backport
+backtick
+backtrace
+bar
+basedir
+basename
+baseurl
+bashrc
+basic
+bat
+bcrypt
+Berksfile
+Berkshelf
+bicubic
+bigint
+bigip
+bin
+Bitrate
+bitset
+bittorrent
+bitwise
+blacklist
+blockchain
+blockchains
+blocklint
+blog
+bookmark
+bookmarked
+bookmarker
+bookmarking
+bookmarklet
+bookmarklets
+bookmarks
+bool
+boolean
+booleans
+bootp
+branch
+Bruijn
+btoa
+btree
+bubble
+bugfix
+bugfixes
+buildkite
+bundler
+bundler's
+bundlers
+bundling
+busybox
+bzip
+c
+cacert
+cache
+calc
+calcs
+callbackfn
+callee
+Camunda
+captcha
+Caskroom
+CDATA
+CentOS
+cfml
+cgroup
+chai
+changelog
+changelogs
+changeset
+charset
+ChefDK
+cheffile
+chefignore
+chefspec
+chmod
+Cholesky
+chown
+chpasswd
+chroot
+class
+clint
+Clojure
+cmdlet
+cobol
+code
+codebase
+codeblock
+codeblocks
+codec
+codecs
+codefixes
+codelens
+codium
+CoffeeScript
+colliders
+colno
+colorize
+colorized
+colorizer
+colorizers
+colorscheme
+combinable
+combinables
+combinator
+combinatorics
+comboboxes
+commit
+commits
+commonjs
+compile
+compiler
+composable
+concurrency
+condition
+conditional
+conditionals
+conditions
+config
+configs
+configstore
+console
+const
+convolver
+coord
+coords
+copypaste
+copyq
+coreos
+coroutine
+coroutines
+cos
+covariance
+cpp
+cpuinfo
+critical
+crlf
+cron
+cronjob
+cronjobs
+crons
+crontab
+cryptocurrencies
+cryptocurrency
+csharp
+csrc
+CSRF
+css
+ctime
+ctor
+ctors
+ctrl
+ctrlc
+cube
+cuberoot
+customizable
+customizables
+CVE
+cvss
+cyber
+cybersecurity
+daemonize
+darkblue
+dashboard
+dashboards
+database
+databases
+dataloader
+dataset
+datasets
+dcopy
+DDMMYY
+ddmmyyyy
+DDoS
+deadlock
+deadlocked
+deadlocking
+deadlocks
+debianrcd
+debounce
+debounced
+debounces
+debouncing
+debug
+debugged
+debugger
+debugging
+decl
+decls
+decodable
+dedent
+deduplicate
+def
+defs
+del
+denylist
+denylisted
+denylisting
+denylists
+deobfuscate
+deobfuscated
+deobfuscates
+deobfuscation
+deobfuscator
+deobfuscators
+dependabot
+deployable
+deployed
+deployer
+deploying
+deprovision
+deprovisioned
+deprovisioning
+deprovisions
+dequeue
+dequeued
+dequeueing
+dequeuing
+dereference
+dereferenced
+dereferences
+dereferencing
+deregister
+deregistered
+desc
+descriptor
+descriptors
+deserialize
+deserialized
+deserializer
+deserializes
+deserializing
+desktop
+dest
+destructure
+destructured
+destructuring
+detune
+devops
+devtool
+devtools
+dhcp
+dhparam
+diags
+dict
+dicts
+diff
+dir
+directory
+direname
+direnames
+dirent
+dirname
+dirnames
+dirs
+discoverd
+dist
+Django
+dll
+dlls
+dmesg
+dmidecode
+DNS
+docblock
+DocBlock
+docker
+dockerd
+dockerfile
+dockerize
+docstring
+doctype
+DOM
+dotNET
+double
+downlevel
+downloadable
+downloaded
+downloader
+downloading
+doxing
+drbd
+dropdown
+droppable
+dscl
+dst
+dtor
+dtors
+duvian
+ebook
+ebooks
+ECDHE
+ECDSA
+ECMA
+egrep
+else
+elseif
+elsif
+email
+emailed
+emailer
+emailers
+emailing
+emails
+enablement
+end
+endhighlight
+endian
+endif
+endofline
+enqueue
+enqueued
+enqueueing
+enqueuer
+enqueues
+enqueuing
+entities
+entity
+entrypoint
+enum
+enumeratee
+enums
+envs
+EOL
+EOLs
+error
+errorcodes
+erroring
+errorlog
+eslint
+ESMTPS
+ESNEXT
+etcd
+ethtool
+eval
+event
+executables
+exherbo
+Exherbo
+expect
+export
+expr
+exprs
+Exps
+extractable
+extractables
+Exts
+fallthrough
+falsy
+favicon
+ffmpeg
+file
+fileio
+filename
+filenames
+filepart
+filepath
+filepaths
+files
+filesystem
+filetype
+filetypes
+findmnt
+fixed
+fixedpoint
+fixme
+FIXURL
+float
+floating
+floats
+flow
+folder
+foldername
+folders
+foreach
+fork
+fortran
+fqdn
+frac
+frameborder
+framerate
+freebsd
+FreeBSD
+freq
+frontend
+fsck
+fsharp
+fstab
+fsync
+fullstack
+func
+function
+GCM
+GDPR
+Gemfile
+gemfiles
+geojson
+getter
+ghcr
+gimsuy
+git
+commit
+rebase
+githooks
+github
+githubusercontent
+gitignore
+gitignored
+gitkeep
+gitlab
+gitlens
+glibc
+global
+globals
+go
+golang
+goroutine
+goto
+gpl
+gravatar
+gravatars
+graylog
+grep
+grepped
+grepping
+greps
+groovy
+groupadd
+groupdel
+groupmod
+grpc
+guid
+GUIs
+gunzip
+gzip
+Hacktoberfest
+hacky
+handlebars
+haproxy
+hardcode
+hardcoded
+hash
+hashmap
+hashmaps
+hdiutil
+helvetica
+heredoc
+hipaa
+hoist
+homebrew
+homedir
+homepage
+homogenous
+homogenously
+host
+hostname
+hostnamectl
+hotfix
+hover
+href
+HSLA
+HSVA
+htaccess
+html
+htop
+http
+httpd
+https
+hyperparameter
+hypervisor
+hypervisors
+iaas
+IANA
+icacls
+icinga
+iCloud
+icmp
+iconv
+id
+idempotent
+ident
+identicon
+ideographic
+IETF
+if
+ifcfg
+ifconfig
+ifelse
+ifupdown
+ignore
+immutable
+immutables
+impl
+import
+incrementally
+incrementor
+infer
+infiniband
+influxdb
+info
+ingres
+ini
+init
+initctl
+initd
+initializer
+Initializers
+initramfs
+initrd
+inits
+injectable
+inline
+inlined
+inliner
+inlining
+inode
+InSpec
+install
+instance
+instanced
+instantiable
+instantiating
+instantiation
+instantiations
+int
+integer
+integers
+integration
+intellisense
+interdependence
+interdependencies
+interdependency
+interdependent
+interop
+interoperability
+interoperable
+invariant
+invariants
+iops
+ipconfig
+ipmi
+iproute
+ipsec
+ipset
+ipsum
+iptables
+isc
+isomorphic
+itanium
+Itanium
+iter
+iterable
+iterables
+iterate
+iterated
+iteratee
+iterates
+iterating
+iteratively
+iterator
+iterators
+iters
+jade
+java
+JavaScript
+JavaScriptReact
+JBoss
+Jekylling
+Jekyllrb
+Jetifier
+JOSM
+journald
+joyent
+Joyent
+jpeg
+jpegs
+jpg
+jruby
+jsconfig
+jshint
+jslint
+json
+jsonb
+jsonc
+jsonp
+jsonrpc
+jumbotron
+junit
+Jupyter
+jwhois
+kafka
+keepalived
+kerberos
+Kerberos
+keybindings
+keycode
+keyfn
+keyframe
+kibana
+Knuth
+Korn
+Kotlin
+KotlinScript
+Kramdown
+kstat
+kurtosis
+lambda
+lambdas
+lang
+langs
+languageclient
+languageserver
+launchctl
+launchd
+lbound
+lbrace
+lbracket
+ldap
+lemma
+lemmas
+lemmata
+lerna
+less
+Levenshtein
+lex
+lexable
+lexed
+lexes
+lexing
+lgpl
+lgtm
+LHS
+libarchive
+libffi
+libffmpeg
+libgecode
+liblzma
+libssl
+libtool
+libvirt
+libxml
+libxslt
+lightblue
+lightbulb
+lightgrey
+lineending
+linefeed
+lineno
+linkspeed
+linode
+Linode
+lint
+linter
+linux
+listboxes
+llvm
+ln
+local
+locale
+localhost
+lock
+locked
+lockfile
+locs
+lodash
+log
+login
+loginctl
+logout
+logrotate
+logstash
+long
+longdouble
+longint
+longpoll
+lookahead
+lookbehind
+loopback
+lorem
+lpar
+lsattr
+lsblk
+lscpu
+lsmod
+lsof
+lspci
+lsscsi
+lstat
+lswpar
+lua
+Lunr
+luns
+lvcreate
+macos
+macOS
+macosx
+Mahalanobis
+mailfrom
+mailmap
+mailto
+make
+makefile
+mandriva
+mangeia
+Mangeia
+manjaro
+manpage
+map
+mapfn
+markdown
+maxkb
+maxptime
+mdadm
+mdn
+mdx
+MediaWiki
+medicalterms
+member
+memcache
+memcached
+MemDB
+meminfo
+memoed
+memoisation
+memoise
+memoised
+memoization
+memoize
+memoized
+memoizes
+memoizing
+mempool
+mempools
+Mendeley
+menu
+menubar
+menubars
+menuitem
+menuitems
+merb
+MERCHANTABLITY
+meta
+metadata
+micromatch
+microservice
+Microsoft
+middleware
+mimetype
+minepart
+mingw
+minification
+minimap
+minitest
+misconfiguration
+misconfigurations
+misconfigure
+misconfigured
+mixin
+mixins
+mkdtemp
+mkfs
+mkswap
+MMDDYY
+mmddyyyy
+MMDDYYYY
+mmistakes
+mmyyyy
+mocha
+modinfo
+modprobe
+modstat
+Mongo
+DB
+monit
+monorepo
+monorepos
+motd
+mouse
+mouseover
+mpl
+msdn
+msgs
+mtime
+multicast
+multiprocessing
+multiroot
+multithread
+multithreaded
+multithreading
+musl
+mutator
+mutators
+mutex
+mutexes
+MYSQL
+myvariable
+nack
+nagios
+Nagios
+namespace
+namespaced
+namespaces
+nano
+Narrowable
+Narrowables
+nav
+navbar
+navtree
+ncurses
+ndef
+netbsd
+NetBSD
+Netlify
+netloc
+netlocs
+netmask
+netstat
+networkconnectivity
+Neuralink
+newline
+nexenta
+nginx
+Nist
+NIST
+nocode
+node
+nodejs
+nohoist
+noinfer
+noinspection
+nolazy
+iterable
+negative
+noop
+nospace
+npm
+ntpd
+ntpdate
+nuget
+Nullable
+Nullables
+nullif
+nullish
+objectid
+observable
+observables
+octokit
+offline
+ohai
+OleDLL
+omnios
+onabort
+onboarding
+onboardings
+oncomplete
+onended
+onerror
+onfulfilled
+oniguruma
+online
+onload
+onloadend
+onmessage
+onopen
+onprogress
+onreadystatechange
+onrejected
+onsuccess
+ontimeout
+onversionchange
+OOBE
+openbsd
+OpenBSD
+openid
+OpenID
+openindiana
+OpenIndiana
+openjdk
+openldap
+OpenNebula
+openresty
+opensolaris
+OpenSolaris
+openssh
+openssl
+openstack
+opensuse
+openSUSE
+openvpn
+OpenVPN
+openvz
+OpenVZ
+opsign
+opsigns
+orderby
+org
+orgs
+ORM
+osi
+osmlab
+package
+packages
+pagefile
+paginator
+Paludis
+panel
+Panner
+param
+parameterization
+parameterized
+parametrization
+params
+parm
+pascal
+passwd
+password
+pathname
+pauseable
+pauseables
+pcie
+pcregrep
+perf
+performant
+perl
+permalink
+permalinks
+php
+pidora
+pixel
+pkgadd
+pkginfo
+pkgutil
+plaintext
+plist
+plugin
+png
+POJO
+POJOs
+policyfile
+polyfill
+polyfilled
+popup
+Postgres
+PostgresSQL
+postinstall
+pow
+powercfg
+powercli
+powerpc
+powershell
+pragma
+pragmas
+pragmata
+precomputing
+predicate
+predicates
+Preformat
+preformatted
+premultiplied
+prepend
+prepends
+prepublish
+prettyprint
+prev
+printf
+private
+process
+processed
+processes
+prog
+Promise
+promisify
+properties
+protected
+pseudorandom
+public
+pubsub
+pug
+pvcreate
+pwd
+python
+qemu
+queryable
+queue
+queued
+queuing
+quicksort
+quotemark
+r
+race
+rackconnect
+raspbian
+razor
+rbac
+rbconfig
+rbenv
+rbrace
+rbracket
+Reachability
+reactive
+readme
+readmes
+readonly
+readthedocs
+readystatechange
+realtime
+rebase
+rebased
+rebases
+rebasing
+recurse
+recursed
+recurses
+recursing
+Recv
+Reddit
+Reddit's
+redeclare
+RedHat
+Redis
+reduce
+reenable
+reenabled
+reenables
+reenabling
+reenqueue
+reenqueued
+reenqueueing
+reenqueues
+refactor
+refactored
+refactoring
+refetch
+refetching
+regex
+regexp
+rehydrate
+rehydrated
+rehydrates
+repl
+repo
+repos
+repurpose
+repurposed
+repurposes
+repurposing
+requeue
+requeued
+requeueing
+requeuing
+rerender
+rerendered
+rerendering
+rerenders
+resizable
+resize
+resized
+resizing
+resoluton
+restructuredtext
+rethrow
+rethrowable
+rethrowables
+rethrows
+return
+retweet
+rhel
+RHS
+rmdir
+root
+rootful
+rootless
+rpar
+rpm
+RSA
+rspec
+rsync
+ruby
+run
+runnable
+runnables
+running
+runtime
+rust
+rx
+rxjava
+rxjs
+rxscala
+sbin
+scala
+scalability
+schema
+schemas
+schemastore
+schemata
+scrollable
+scrollbar
+scrypt
+scss
+scutil
+sdk
+sdks
+secedit
+section
+sections
+selinux
+semaphore
+semaphores
+sematic
+semver
+serializable
+serialize
+serialized
+serializer
+serializing
+server
+serverless
+set
+setter
+setuptool
+sftp
+sha
+shaderlab
+shard
+sharding
+sharedmemory
+shas
+shasum
+shellscript
+short
+shortint
+shortname
+shrinkwrap
+sin
+sinon
+sizeof
+slapd
+slugify
+smalltalk
+smartos
+SmartOS
+smbios
+smtp
+snackbar
+snapctl
+snapd
+softlayer
+SoftLayer
+solaris
+Solaris
+Solr
+sort
+sorted
+sourcefile
+sourcemap
+Sparc
+spdx
+Splunk
+sql
+SQL
+sqlite
+sqrt
+squigglies
+src
+sshd
+sssd
+stack
+stacktrace
+stacktraces
+stateful
+static
+Staticman
+statusbar
+stderr
+stdin
+stdout
+stmt
+storagectl
+strace
+streetsidesoftware
+stringified
+stringifies
+stringify
+Sendgrid
+stunnel
+ecommerce
+eCommerce
+stylesheets
+subcommand
+subcommands
+subdirectories
+subdirectory
+subfield
+subfields
+subfolder
+subgraph
+subgraphs
+subheader
+sublicensing
+submenu
+submenus
+submodule
+submodules
+subnode
+subnodes
+subpath
+subpixel
+subreddit
+subreddit's
+subscribable
+subscribables
+subscriptable
+subst
+substrings
+subtree
+subtrees
+subtype
+subtyped
+sudo
+sudoers
+sugs
+suid
+supertype
+svmon
+swappiness
+swift
+Swiftype
+swimlane
+swimlanes
+symlink
+symlinked
+symlinks
+synchronous
+synchronously
+sysctl
+sysinternals
+syslog
+sysprep
+systemctl
+systemd
+taggable
+tan
+telegraf
+telnetd
+temporaryfile
+terminal
+test
+testable
+tested
+testing
+testnet
+textarea
+textdocument
+textdocuments
+tftp
+Theming
+then
+thenable
+thread
+threads
+throughput
+throwable
+throwables
+thunk
+timezone
+timeline
+timelines
+timestamp
+tmlanguage
+tmpfile
+tmux
+todo
+tokenization
+tokenizations
+tokenize
+tokenized
+tokenizer
+tokenizers
+tokenizing
+toolchain
+tooltip
+tooltips
+transact
+transacted
+transaction
+transactions
+transcluded
+transclusion
+transcode
+transcoded
+transcoder
+transcodes
+transcoding
+transcodings
+transparent
+transparentize
+transpilation
+transpile
+transpiled
+transpiler
+transpilers
+tree
+trees
+trie
+tries
+tripleslash
+trust
+trusted
+trusting
+truthy
+tsconfig
+tslib
+tslint
+tsmerge
+tsserver
+typechecking
+Typedef
+typeid
+typename
+TypeScript
+TypeScriptReact
+typings
+tzinfo
+tzutil
+ubound
+ubuntu
+ulimit
+ultradns
+umask
+umount
+uname
+UNCACHED
+uncheck
+Unclaim
+uncomment
+uncommented
+uncommenting
+uncomments
+undecodable
+undef
+uneditable
+unelevated
+unencoded
+unescape
+unescaped
+unfavorite
+Unhandled
+unicast
+unindent
+uninstall
+uniq
+unit
+units
+unittest
+univariate
+unix
+unlicense
+unmodifiable
+unmodified
+unmodifing
+unmount
+unmounted
+unmounting
+unmounts
+unordered
+unpause
+unpaused
+unpauses
+unpausing
+unpend
+unpended
+unpending
+unpends
+unprocessable
+unreference
+unreferenced
+unreferences
+unreferencing
+unregister
+unregistered
+unschedulable
+unschedulables
+unschedule
+unscheduler
+unselect
+unselected
+unselecting
+unselectings
+unselects
+unshare
+unsorted
+unsubscriptable
+untrack
+untracked
+untrust
+untrusted
+untrusts
+untyped
+unzip
+updateready
+uploader
+uri
+uri's
+uris
+url
+urlencoded
+urls
+user
+useradd
+username
+usings
+util
+utils
+UUID
+UUIDs
+Vagrantfile
+vagrantup
+validator
+validators
+variable
+variables
+Variadic
+vax
+vb
+vbox
+vboxdrv
+vboxguest
+VBoxManage
+vboxsf
+vCenter
+Veertu
+vercel
+versionchange
+vgcreate
+viewlet
+viewport
+VirtualBox
+virtualization
+virtualizations
+virtualize
+virtualized
+virtualizer
+virtualizing
+visualstudio
+visudo
+VLAN
+VLANs
+VMDK
+vmlinuz
+VMOMI
+vmstat
+vmtools
+vmtoolsd
+VMware
+VMXNET
+vsce
+vscode
+vscodium
+vsliveshare
+vsmarketplacebadge
+vSphere
+vSwitch
+Vyatta
+Waagent
+WAgent
+warning
+wasm
+Watchr
+waypoint
+waypoints
+webapp
+webdings
+webhook
+webkit
+webpack
+websocket
+webview
+wellknown
+wget
+whitelist
+whitelisted
+whitelisting
+whitelists
+whitepaper
+whitepapers
+whitespace
+whoami
+wiki
+Wikidata
+Wikimedia
+Wikipedia
+Wiktionary
+win
+WinDLL
+window
+windows
+WinNT
+WinOS
+WinRM
+WinRS
+WIPO
+wireguard
+Wishart
+WMIC
+word
+WordPress
+words
+workflow
+workgroup
+workspace
+WPAR
+WPARs
+wrlinux
+WSMan
+WSUS
+WWAN
+www
+xargs
+Xcode
+xdotool
+Xenial
+xinetd
+xinput
+xml
+xmlcatalog
+xmllint
+xmlns
+XMLRPC
+xmodmap
+xpath
+Xproto
+xserver
+xsl
+XSRF
+yacc
+YAGNI
+Yahoo
+yakuake
+yaml
+ymd
+yymmdd
+yyyy
+yyyymm
+yyyymmdd
+yyyymmddhhmmss
+yyyymmddhhmmssz
+Zend
+Zendesk
+Zenoss
+ZenServer
+ZeroMQ
+ZFS
+ziltoid
+zip
+zlib
+ZPool
+ZPools
+Zypper
diff --git a/.github/actions/spelling/expect/_loremIpsum.txt b/.github/actions/spelling/expect/_loremIpsum.txt
new file mode 100644
index 00000000..8f16397a
--- /dev/null
+++ b/.github/actions/spelling/expect/_loremIpsum.txt
@@ -0,0 +1,357 @@
+ab
+ac
+accumsan
+accusamus
+accusantium
+ad
+adipisci
+adipiscing
+adipisicing
+aenean
+alias
+aliqua
+aliquam
+aliquet
+aliquid
+aliquip
+amet
+anim
+animi
+ante
+aperiam
+aptent
+architecto
+arcu
+asperiores
+aspernatur
+assumenda
+at
+atque
+auctor
+augue
+aut
+aute
+autem
+beatae
+bibendum
+blandit
+blanditiis
+cillum
+class
+commodi
+commodo
+condimentum
+congue
+consectetur
+consequat
+consequatur
+consequuntur
+conubia
+convallis
+corporis
+corrupti
+cras
+cubilia
+culpa
+cum
+cumque
+cupidatat
+cupiditate
+curabitur
+curae
+cursus
+dapibus
+debitis
+delectus
+deleniti
+deserunt
+diam
+dicta
+dictum
+dictumst
+dignissim
+dignissimos
+dis
+distinctio
+do
+dolor
+dolore
+dolorem
+doloremque
+dolores
+doloribus
+dolorum
+donec
+ducimus
+dui
+duis
+ea
+eaque
+earum
+efficitur
+egestas
+eget
+eius
+eiusmod
+eleifend
+elementum
+eligendi
+elit
+enim
+eos
+erat
+eros
+error
+esse
+est
+et
+etiam
+eu
+euismod
+eum
+eveniet
+ex
+excepteur
+excepturi
+exercitation
+exercitationem
+expedita
+explicabo
+facere
+facilis
+facilisi
+facilisis
+fames
+faucibus
+felis
+fermentum
+feugiat
+finibus
+fringilla
+fuga
+fugiat
+fugit
+fusce
+gravida
+habitant
+habitasse
+hac
+harum
+hendrerit
+hic
+himenaeos
+iaculis
+id
+illo
+illum
+impedit
+imperdiet
+in
+inceptos
+incididunt
+incidunt
+integer
+interdum
+inventore
+ipsa
+ipsam
+ipsum
+irure
+iste
+itaque
+iure
+iusto
+justo
+labore
+laboriosam
+laboris
+laborum
+lacinia
+lacus
+laoreet
+laudantium
+lectus
+leo
+libero
+ligula
+litora
+lobortis
+lorem
+luctus
+maecenas
+magna
+magnam
+magni
+magnis
+maiores
+malesuada
+massa
+mattis
+mauris
+maxime
+maximus
+metus
+mi
+minim
+minima
+minus
+modi
+molestiae
+molestias
+molestie
+mollis
+mollit
+mollitia
+montes
+morbi
+mus
+nam
+nascetur
+natoque
+natus
+nec
+necessitatibus
+nemo
+neque
+nesciunt
+netus
+nibh
+nihil
+nisi
+nisl
+nobis
+non
+nostra
+nostrud
+nostrum
+nulla
+nullam
+numquam
+nunc
+obcaecati
+occaecat
+odio
+odit
+officia
+officiis
+omnis
+optio
+orci
+ornare
+pariatur
+parturient
+pellentesque
+penatibus
+per
+perferendis
+perspiciatis
+pharetra
+phasellus
+placeat
+placerat
+platea
+porro
+porta
+porttitor
+possimus
+posuere
+praesent
+praesentium
+pretium
+primis
+proident
+proin
+provident
+pulvinar
+purus
+quae
+quaerat
+quam
+quas
+quasi
+qui
+quia
+quibusdam
+quidem
+quis
+quisquam
+quisque
+quo
+quod
+quos
+ratione
+recusandae
+reiciendis
+rem
+repellat
+repellendus
+reprehenderit
+repudiandae
+rerum
+rhoncus
+ridiculus
+risus
+rutrum
+saepe
+sagittis
+sapien
+sapiente
+scelerisque
+sed
+sem
+semper
+senectus
+sequi
+similique
+sint
+sit
+sociis
+sociosqu
+sodales
+sollicitudin
+soluta
+sunt
+suscipit
+suspendisse
+taciti
+tellus
+tempor
+tempora
+tempore
+temporibus
+tempus
+tenetur
+tincidunt
+torquent
+tortor
+totam
+tristique
+turpis
+ullam
+ullamco
+ullamcorper
+ultrices
+ultricies
+unde
+urna
+ut
+varius
+vehicula
+vel
+velit
+venenatis
+veniam
+veritatis
+vero
+vestibulum
+vitae
+vivamus
+viverra
+voluptas
+voluptate
+voluptatem
+voluptates
+voluptatibus
+voluptatum
+volutpat
+vulputate
diff --git a/.github/actions/spelling/expect/_ordercloud.txt b/.github/actions/spelling/expect/_ordercloud.txt
new file mode 100644
index 00000000..30f316eb
--- /dev/null
+++ b/.github/actions/spelling/expect/_ordercloud.txt
@@ -0,0 +1,122 @@
+# OrderCloud Specific Dictionary
+Avalara
+BDPU
+BOGO
+CSRs
+Dcaka
+Devcenter
+Dropship
+MPO
+MPOs
+OIDC
+ORDERCLOUD
+OWASP
+Omni
+OrderCheckoutIntegrationEventID
+PATC
+PATCH
+Punchout
+RESTful
+Rearchitect
+Sitecore
+Tful
+UIs
+USNW
+Varient
+accesstoken
+adminusers
+anormalordercloudid
+approvalrules
+approveremail
+approverfirstname
+approverid
+approverlastname
+approverphone
+approverusername
+approvinggroupid
+appstart
+appstartpath
+calculateorderreturn
+createuser
+datecompleted
+datecreated
+dateshipped
+datesubmitted
+definesvariant
+eligibleapprovers
+eliglbleapprovers
+esque
+estimateshipping
+extrapath
+firstname
+forgottenpassword
+fromuser
+incategory
+inparentcategory
+integra
+integrationevent
+integrationevents
+integrationproxy
+inventoryrecords
+jyyy
+lastest
+lastname
+lineitemcount
+lineitemid
+marketplaceowner
+messagetype
+mywebhook
+nativeintegrationproxy
+neworderclouduser
+ocrplogin
+openapi
+ordercloud
+orderflow
+orderid
+orderreturns
+ordersubmitted
+orderxp
+passwordrenewalurl
+passwordtoken
+passwordverification
+passwordverificationcode
+priceschedule
+productassignments
+productdesc
+productname
+quantityshipped
+returnid
+routeparams
+ruleid
+sandboxapi
+searchability
+searchon
+securityprofile
+shipfrom
+shipmentid
+shipmentitems
+shipmenttrackingnumber
+shipmethods
+shipto
+shiptocity
+shiptocountry
+shiptoname
+shiptopostalcode
+shiptostate
+shiptostreet
+subexpression
+submarkets
+subobject
+subobjects
+syncuser
+toaddresscity
+toaddresscompany
+toaddresscountry
+toaddressfirstname
+toaddressid
+toaddresslastname
+toaddressname
+toaddresspostalcode
+toaddressstate
+toaddressstreet
+usergroup
diff --git a/.github/actions/spelling/expect/_users.txt b/.github/actions/spelling/expect/_users.txt
new file mode 100644
index 00000000..c423fd2a
--- /dev/null
+++ b/.github/actions/spelling/expect/_users.txt
@@ -0,0 +1,20 @@
+# Add your username here
+rwatt
+tmenier
+jilse
+mposthumus
+sdavis
+awilson
+roblloyd
+oheywood
+dsteinmetz
+jhookom
+asutherland
+cramirez
+crhistianramirez
+Crhistian
+Ramirez
+cricomendoza
+Mendoza
+Hookom
+Menier
diff --git a/.github/actions/spelling/expect/_whitelist.txt b/.github/actions/spelling/expect/_whitelist.txt
new file mode 100644
index 00000000..5176f795
--- /dev/null
+++ b/.github/actions/spelling/expect/_whitelist.txt
@@ -0,0 +1,280 @@
+AMA
+AMAs
+API
+Akka
+Atlassian
+Authenticode
+Autofac
+Automagically
+Avalara
+AzureAD
+BSing
+Balsamiq
+Blackbox
+Blazor
+CCPA
+CDN
+CDNs
+CLI
+CMDB
+CNAME
+COVID
+CPUs
+CPQ
+cpq
+CRM
+Calendly
+Camtasia
+Centos
+Chkdsk
+Chocolatey
+Chromecast
+Chromecasting
+Coachee
+Coachees
+Codespace
+Conery
+Cyclomatic
+Dependabot
+Disqus
+Dockerfiles
+Dockerhub
+Dorrans
+Dunkin
+EUR
+Egozi
+Excella
+FYI
+FYIs
+Feedly
+Flurl
+Frontend
+GUI
+GUIDs
+Geocoordinates
+Gmail
+Golang
+Greenshot
+HDDs
+HKEY
+HMACSHA
+Headshots
+Helpdesk
+Hmmm
+ISOs
+ITIL
+IdentityServer
+Immo
+Incrementation
+Itamar
+JSONB
+JWT
+Kanban
+LONGTERM
+Linq
+MVPs
+Magento
+Mailchimp
+Microservices
+Minecraft
+NTFS
+Nagios
+Namecheap
+Ninject
+Noura
+Novotny
+Nuget
+ORDERCLOUD
+ORMs
+OTRS
+Octokit
+Opserver
+Orgs
+Osherove
+PATCHing
+PCIE
+POCOs
+Photoshop
+Pingendo
+Pluralsight
+Pok
+mon
+PostreSQL
+Powershell
+Proto
+Pssst
+RFPs
+Rakefile
+Repos
+Resharper
+Roadmap
+Rsync
+SAFe
+SATA
+SEO
+SSRS
+Saad
+Sectigo
+Serilog
+Smtp
+SpecFlow
+Statiq
+Storify
+Tekkit
+Touchpad
+Trello
+Tweetdeck
+computerdudes
+DBAs
+Twilio
+USB
+usb
+elctric
+VM's
+VPNing
+VSCode
+Vercel
+Visio
+WMATA
+walkthrough
+Walkthrough
+Womp
+Yuuup
+Zipcode
+acodec
+admin
+allyship
+architected
+autohotkey
+autoplay
+azuresigntool
+balancer's
+bitbucket
+blog
+bookmarklet
+camelcase
+checkmark
+chromedriver
+cloudtech
+cmdlet
+cmdlets
+cmdline
+codespaces
+commoditize
+companydomain
+composability
+creds
+cruisecontrol
+curriculars
+curveball
+datapoint
+devops
+devs
+distro
+docfx
+dotnet
+dotnetcore
+eCommerce
+else
+eyeroll
+figcaption
+frontends
+frontmatter
+gatekeeper
+gatekeeping
+github
+gotchas
+haha
+html
+htmlproofer
+httpd
+img
+impersonatee
+improv
+incentivize
+incentivizing
+inci
+incrementator
+incrementors
+inetpub
+ing
+janesmith
+jpg
+json
+konmaripoweb
+lefthand
+lifecycles
+likert
+lineitem
+lineitems
+livestream
+microservice
+miriad
+mistersql
+mkdir
+mon
+moreso
+msbuild
+msys
+multicurrency
+multilanguage
+nevermind
+nlkl
+npm
+ntlm
+nunit
+octopress
+octopusdeploy
+omnichannel
+ordercloud
+oooh
+openssl
+org
+Paa
+PaaS
+parenttitle
+parenturl
+pdf
+png
+podcast
+prismjs
+proactively
+refactorings
+ridk
+righthand
+rwatt
+SaaS
+screencast
+screenshot
+screenshots
+scss
+servername
+signkey
+signup
+skillset
+skillsets
+solutioning
+specc
+src
+sync
+sync'ing
+sysdate
+teamcity
+templating
+testwithoutbuild
+thumbprint
+toml
+toolset
+unanet
+unsubmitted
+UNSPSC
+vcodec
+verifypeer
+visualsvn
+vmware
+vsts
+workflow
+xsl
+xslx
+yada
+RESTful
diff --git a/.github/actions/spelling/only.txt b/.github/actions/spelling/only.txt
new file mode 100644
index 00000000..0cec5a8c
--- /dev/null
+++ b/.github/actions/spelling/only.txt
@@ -0,0 +1,3 @@
+# Only process MDX or MD files
+\.mdx$
+\.md$
diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt
new file mode 100644
index 00000000..8ce00819
--- /dev/null
+++ b/.github/actions/spelling/patterns.txt
@@ -0,0 +1,96 @@
+# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
+
+# ignore long runs of a single character:
+\b([A-Za-z])\g{-1}{3,}\b
+
+# marker to ignore all code on line
+^.*/\* #no-spell-check-line \*/.*$
+# marker for ignoring a comment to the end of the line
+// #no-spell-check.*$
+
+# patch hunk comments
+^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .*
+# git index header
+index [0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
+
+# ignore Authorization Bearer tokens
+(?<=Bearer)(.*)(?=...)
+
+# hash
+Hash="[0-9A-F]{40}"
+
+# Input to GitHub JSON
+content: "[-a-zA-Z=;:/0-9+]*="
+
+# URL escaped characters
+\%[0-9A-F]{2}
+
+# URLs starting with HTTP/HTTPS
+https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
+
+# URLs without protocol
+[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
+
+# catch all URL domain names
+^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$
+
+# mailto urls
+mailto:[-a-zA-Z=;:/?%&0-9+]*
+
+# marker for ignoring a comment to the end of the line
+^.*/\* #no-spell-check-line \*/.*$
+// #no-spell-check.*$
+
+# plugin.json
+^ "ID": "[0-9A-F]{32}",$
+
+# hex digits including css/html color classes:
+(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23|L")[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b
+
+# Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally )
+# grep lorem .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review -
+# Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into:
+## Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
+## You could manually change `(?i)X...` to use `[Xx]...`
+## or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
+# Lorem
+(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*
+
+# Non-English
+[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŸŽž][a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŸŽž]*
+
+# URL escaped characters
+\%[0-9A-F]{2}
+
+# ignore long runs of a single character:
+/(.)\1{2}/gi
+\b([A-Za-z])\g{-1}{3,}\b
+(?:L"[abAB]+", ){3}L"[abAB]+"
+"Lorem[^"]+?\."
+TestCase\("[^"]+"
+
+# patch hunk comments
+^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .*
+# git index header
+index [0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
+
+# ignore anything between backticks
+([`])(?:.)*?\1
+
+# ignore anything between single quotes
+(['])(?:.)*?\1
+
+# ignore anything between double quotes
+"(.*?)"
+
+# ignore anything between single backticks
+`(.*?)`
+
+# ignore words with apostrophe s || d || ve || ing (ex: CLI's, specc'd, could've, sync'ing)
+[\w]+'[s|d]|[\w]+'ve|[\w]+'ing
+
+# ignore strings longer than 25 characters
+\w{25,}
+
+# ignore multiline code blocks
+^```(?:json|http|)\n([\s\S]*?)```$
diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt
new file mode 100644
index 00000000..0dc3b7c5
--- /dev/null
+++ b/.github/actions/spelling/reject.txt
@@ -0,0 +1,9 @@
+^attache$
+benefitting
+occurence
+colour
+customise
+Sorce
+^[Ss]pae
+^untill
+^wether
diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml
deleted file mode 100644
index 7f735cf7..00000000
--- a/.github/workflows/spellcheck.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-name: Spellcheck
-
-on:
- push:
- branches:
- - "**"
-
-jobs:
- spellchecking:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- name: Check out the code
- - uses: actions/setup-node@v1
- name: Run spell check
- with:
- node-version: "12"
- - run: npm install -g cspell
- - run: cspell lint --config cSpell.json --no-progress "content/**/*.mdx" "README.md"
- name: Run spell checker (refer to the README.md for more details on resolving spelling errors.)
\ No newline at end of file
diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml
new file mode 100644
index 00000000..de4e1580
--- /dev/null
+++ b/.github/workflows/spelling.yml
@@ -0,0 +1,61 @@
+name: Spell checking
+on:
+ pull_request_target:
+ issue_comment:
+ types: [created]
+
+jobs:
+ spelling:
+ name: Spell checking
+ runs-on: ubuntu-latest
+ steps:
+ - name: checkout-merge
+ if: "contains(github.event_name, 'pull_request')"
+ uses: actions/checkout@v2
+ with:
+ ref: refs/pull/${{github.event.pull_request.number}}/merge
+ - name: checkout
+ if: ${{ github.event_name == 'push' ||
+ (
+ contains(github.event.comment.body, '@check-spelling-bot apply')
+ ) }}
+ uses: actions/checkout@v2
+ - uses: check-spelling/check-spelling@main
+ id: spelling
+ if: ${{ github.event_name != 'issue_comment' ||
+ (
+ contains(github.event.comment.body, '@check-spelling-bot apply')
+ ) }}
+ with:
+ only_check_changed_files: 1
+ check_extra_dictionaries: 1
+ experimental_path: content
+ extra_dictionaries:
+ cspell:ada/ada.txt
+ cspell:aws/aws.txt
+ cspell:bash/bash-words.txt
+ cspell:companies/companies.txt
+ cspell:cpp/cpp.txt
+ cspell:csharp/csharp.txt
+ cspell:css/css.txt
+ cspell:django/django.txt
+ cspell:dotnet/dotnet.txt
+ cspell:el/src/Greek.txt
+ cspell:elixir/elixir.txt
+ cspell:en_GB/src/wordsEnGb.txt
+ cspell:filetypes/filetypes.txt
+ cspell:fonts/fonts.txt
+ cspell:fullstack/fullstack.txt
+ cspell:golang/go.txt
+ cspell:haskell/haskell.txt
+ cspell:html/html.txt
+ cspell:java/java.txt
+ cspell:latex/latex.txt
+ cspell:lua/lua.txt
+ cspell:node/node.txt
+ cspell:npm/npm.txt
+ cspell:php/php.txt
+ cspell:python/python.txt
+ cspell:ruby/ruby.txt
+ cspell:rust/rust.txt
+ cspell:scala/scala.txt
diff --git a/content/discover/define-your-marketplace.mdx b/content/discover/define-your-marketplace.mdx
index d1c9df36..e69da750 100644
--- a/content/discover/define-your-marketplace.mdx
+++ b/content/discover/define-your-marketplace.mdx
@@ -14,7 +14,7 @@ OrderCloud has a very robust model for supporting the most complex organizations
![Basic Relationship of OrderCloud Building Blocks](/images/discover/792_oc_define_marketplace-1.png)
- **Marketplace** - At the center of any solution is a single Marketplace. It consists directly of users, groups, and addresses (used mainly for shipping calculations), which should be established ahead of product catalogs, buyers, and suppliers.
-- **Buyers** - Buyers represent real-world legal entities to which the Seller offers Product Catalogs and from which the Suileller receives Orders. Buyers can be set up with their own addresses, users, catalogs, and much more, including Cost Centers, Spending Accounts, and Approval Rules.
+- **Buyers** - Buyers represent real-world legal entities to which the Seller offers Product Catalogs and from which the Sellers receives Orders. Buyers can be set up with their own addresses, users, catalogs, and much more, including Cost Centers, Spending Accounts, and Approval Rules.
- **Users** - Users can be part of the seller, buyer, or supplier setup. They allow you to set up a great deal of flexibility in setting up a marketplace and coordinating commerce. Additionally, you can set up User Groups that allow you to assign catalogs, permissions, addresses, or other properties.
- **Product Catalogs** - OrderCloud supports publishing any number of variations of your product catalog out to buyers and users. May it be to offer customized products for sub-segments of your market, or to centrally manage catalogs that mirror your global supply chain.
- **Suppliers** - Suppliers are a third, optional type of organization used in indirect supply chain scenarios. Like the Seller, they contain Users and Groups. Once established, Products can be configured to auto-forward to Suppliers when ordered. This will automatically create a new PO, notify the Supplier, and track costs and profit margins if configured.
diff --git a/content/documents/order-search.mdx b/content/documents/order-search.mdx
index f086de91..c20759a4 100644
--- a/content/documents/order-search.mdx
+++ b/content/documents/order-search.mdx
@@ -1,7 +1,7 @@
---
type: article
title: Premium Search for Orders
-description: Signifcant enhancements to querying orders and line items.
+description: Significant enhancements to querying orders and line items.
author: tmenier
publishDate: 2022-03-05
updatedDate: 2022-03-22
diff --git a/content/documents/sso-via-openid-connect.mdx b/content/documents/sso-via-openid-connect.mdx
index 4fe9025f..991823c6 100644
--- a/content/documents/sso-via-openid-connect.mdx
+++ b/content/documents/sso-via-openid-connect.mdx
@@ -131,7 +131,7 @@ Called after a user enters their credentials in the IDP for the first time while
```json
"ExistingUser": null,
- "OpenIdConnect": {}, // your OpenID Connect configruation you created
+ "OpenIdConnect": {}, // your OpenID Connect configuration you created
"TokenResponse": {
"id_token": "eyJhbGciOiJSU...", // token from your IDP
"access_token": "ya29.a0ARrdaM92vGZsFj"
diff --git a/content/learn/getting-started/creating-your-first-marketplace.mdx b/content/learn/getting-started/creating-your-first-marketplace.mdx
index 8e71a341..12a7a060 100644
--- a/content/learn/getting-started/creating-your-first-marketplace.mdx
+++ b/content/learn/getting-started/creating-your-first-marketplace.mdx
@@ -18,7 +18,7 @@ Creating your first marketplace is pretty straightforward and can be done from t
3. Optionally set an ID for your marketplace
4. Click "CREATE MARKETPLACE"
-For the purposes of this guide, we chose the Name "Example Marketplace" and decided to leave the ID blank and let the OrderCloud system choose a unique identifier for us. These identifiers must be unique across the entire OrderCloud ecosystem, so letting OrderCloud choose that particular field can avoid running into any conflicts.
+For the purposes of this guide, we choose the Name "Example Marketplace" and decided to leave the ID blank and let the OrderCloud system choose a unique identifier for us. These identifiers must be unique across the entire OrderCloud ecosystem, so letting OrderCloud choose that particular field can avoid running into any conflicts.
![Create New Marketplace Dialog](/images/learn/getting-started/marketplace-1.jpg)