240 lines
11 KiB
Cap'n Proto
240 lines
11 KiB
Cap'n Proto
@0xf1392eefc31cb097;
|
|
|
|
using Spk = import "/sandstorm/package.capnp";
|
|
# This imports:
|
|
# $SANDSTORM_HOME/latest/usr/include/sandstorm/package.capnp
|
|
# Check out that file to see the full, documented package definition format.
|
|
|
|
const pkgdef :Spk.PackageDefinition = (
|
|
# The package definition. Note that the spk tool looks specifically for the
|
|
# "pkgdef" constant.
|
|
|
|
id = "nx3dqcmz2sjjz939vkg4847vvxrzqsatqfjrt3ea50z3jac5kv7h",
|
|
# Your app ID is actually its public key. The private key was placed in
|
|
# your keyring. All updates must be signed with the same key.
|
|
|
|
manifest = (
|
|
# This manifest is included in your app package to tell Sandstorm
|
|
# about your app.
|
|
|
|
appTitle = (defaultText = "DokuWiki"),
|
|
|
|
appVersion = 10, # Increment this for every release.
|
|
|
|
appMarketingVersion = (defaultText = (embed "app-marketing-version")),
|
|
# Human-readable representation of appVersion. Should match the way you
|
|
# identify versions of your app in documentation and marketing.
|
|
|
|
actions = [
|
|
# Define your "new document" handlers here.
|
|
( title = (defaultText = "New Wiki"),
|
|
command = .myCommand
|
|
# The command to run when starting for the first time. (".myCommand"
|
|
# is just a constant defined at the bottom of the file.)
|
|
)
|
|
],
|
|
|
|
continueCommand = .myCommand,
|
|
# This is the command called to start your app back up after it has been
|
|
# shut down for inactivity. Here we're using the same command as for
|
|
# starting a new instance, but you could use different commands for each
|
|
# case.
|
|
|
|
metadata = (
|
|
# Data which is not needed specifically to execute the app, but is useful
|
|
# for purposes like marketing and display. These fields are documented at
|
|
# https://docs.sandstorm.io/en/latest/developing/publishing-apps/#add-required-metadata
|
|
# and (in deeper detail) in the sandstorm source code, in the Metadata section of
|
|
# https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/package.capnp
|
|
icons = (
|
|
# Various icons to represent the app in various contexts.
|
|
appGrid = (png = (dpi1x = embed "appGrid.png")),
|
|
grain = (png = (dpi1x = embed "grain.png")),
|
|
market = (png = (dpi1x = embed "market.png")),
|
|
#marketBig = (svg = embed "path/to/market-big-300x300.svg"),
|
|
),
|
|
|
|
website = "http://dokuwiki.org",
|
|
# This should be the app's main website url.
|
|
|
|
codeUrl = "https://github.com/johnbintz/dokuwiki-sandstorm",
|
|
# URL of the app's source code repository, e.g. a GitHub URL.
|
|
# Required if you specify a license requiring redistributing code, but optional otherwise.
|
|
|
|
license = (openSource = gpl2),
|
|
# The license this package is distributed under. See
|
|
# https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license
|
|
|
|
categories = [webPublishing, productivity],
|
|
# A list of categories/genres to which this app belongs, sorted with best fit first.
|
|
# See the list of categories at
|
|
# https://docs.sandstorm.io/en/latest/developing/publishing-apps/#categories
|
|
|
|
author = (
|
|
# Fields relating to the author of this app.
|
|
|
|
contactEmail = "sandstorm@leapingsheepfarm.com",
|
|
# Email address to contact for any issues with this app. This includes end-user support
|
|
# requests as well as app store administrator requests, so it is very important that this be a
|
|
# valid address with someone paying attention to it.
|
|
|
|
pgpSignature = embed "pgp-signature",
|
|
# PGP signature attesting responsibility for the app ID. This is a binary-format detached
|
|
# signature of the following ASCII message (not including the quotes, no newlines, and
|
|
# replacing <app-id> with the standard base-32 text format of the app's ID):
|
|
#
|
|
# "I am the author of the Sandstorm.io app with the following ID: <app-id>"
|
|
#
|
|
# You can create a signature file using `gpg` like so:
|
|
#
|
|
# echo -n "I am the author of the Sandstorm.io app with the following ID: <app-id>" | gpg --sign > pgp-signature
|
|
#
|
|
# Further details including how to set up GPG and how to use keybase.io can be found
|
|
# at https://docs.sandstorm.io/en/latest/developing/publishing-apps/#verify-your-identity
|
|
|
|
upstreamAuthor = "DokuWiki Team",
|
|
# Name of the original primary author of this app, if it is different from the person who
|
|
# produced the Sandstorm package. Setting this implies that the author connected to the PGP
|
|
# signature only "packaged" the app for Sandstorm, rather than developing the app.
|
|
# Remove this line if you consider yourself as the author of the app.
|
|
),
|
|
|
|
pgpKeyring = embed "pgp-keyring",
|
|
# A keyring in GPG keyring format containing all public keys needed to verify PGP signatures in
|
|
# this manifest (as of this writing, there is only one: `author.pgpSignature`).
|
|
#
|
|
# To generate a keyring containing just your public key, do:
|
|
#
|
|
# gpg --export <key-id> > keyring
|
|
#
|
|
# Where `<key-id>` is a PGP key ID or email address associated with the key.
|
|
|
|
description = (defaultText = embed "description.md"),
|
|
# The app's description description in Github-flavored Markdown format, to be displayed e.g.
|
|
# in an app store. Note that the Markdown is not permitted to contain HTML nor image tags (but
|
|
# you can include a list of screenshots separately).
|
|
|
|
shortDescription = (defaultText = "Wiki"),
|
|
# A very short (one-to-three words) description of what the app does. For example,
|
|
# "Document editor", or "Notetaking", or "Email client". This will be displayed under the app
|
|
# title in the grid view in the app market.
|
|
|
|
screenshots = [
|
|
# Screenshots to use for marketing purposes. Examples below.
|
|
# Sizes are given in device-independent pixels, so if you took these
|
|
# screenshots on a Retina-style high DPI screen, divide each dimension by two.
|
|
|
|
#(width = 746, height = 795, jpeg = embed "path/to/screenshot-1.jpeg"),
|
|
#(width = 640, height = 480, png = embed "path/to/screenshot-2.png"),
|
|
],
|
|
changeLog = (defaultText = embed "changelog.md"),
|
|
# Documents the history of changes in Github-flavored markdown format (with the same restrictions
|
|
# as govern `description`). We recommend formatting this with an H1 heading for each version
|
|
# followed by a bullet list of changes.
|
|
),
|
|
),
|
|
|
|
sourceMap = (
|
|
# Here we defined where to look for files to copy into your package. The
|
|
# `spk dev` command actually figures out what files your app needs
|
|
# automatically by running it on a FUSE filesystem. So, the mappings
|
|
# here are only to tell it where to find files that the app wants.
|
|
searchPath = [
|
|
( sourcePath = "." ), # Search this directory first.
|
|
( sourcePath = "/", # Then search the system root directory.
|
|
hidePaths = [ "home", "proc", "sys",
|
|
"etc/passwd", "etc/hosts", "etc/host.conf",
|
|
"etc/nsswitch.conf", "etc/resolv.conf" ]
|
|
# You probably don't want the app pulling files from these places,
|
|
# so we hide them. Note that /dev, /var, and /tmp are implicitly
|
|
# hidden because Sandstorm itself provides them.
|
|
)
|
|
]
|
|
),
|
|
|
|
fileList = "sandstorm-files.list",
|
|
# `spk dev` will write a list of all the files your app uses to this file.
|
|
# You should review it later, before shipping your app.
|
|
|
|
alwaysInclude = ["opt/app/dokuwiki"],
|
|
# Fill this list with more names of files or directories that should be
|
|
# included in your package, even if not listed in sandstorm-files.list.
|
|
# Use this to force-include stuff that you know you need but which may
|
|
# not have been detected as a dependency during `spk dev`. If you list
|
|
# a directory here, its entire contents will be included recursively.
|
|
|
|
bridgeConfig = (
|
|
# # Used for integrating permissions and roles into the Sandstorm shell
|
|
# # and for sandstorm-http-bridge to pass to your app.
|
|
# # Uncomment this block and adjust the permissions and roles to make
|
|
# # sense for your app.
|
|
# # For more information, see high-level documentation at
|
|
# # https://docs.sandstorm.io/en/latest/developing/auth/
|
|
# # and advanced details in the "BridgeConfig" section of
|
|
# # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/package.capnp
|
|
viewInfo = (
|
|
permissions = [
|
|
(
|
|
name = "admin",
|
|
title = (defaultText = "admin"),
|
|
description = (defaultText = "grants ability to administer wiki"),
|
|
),
|
|
(
|
|
name = "manager",
|
|
title = (defaultText = "manager"),
|
|
description = (defaultText = "grants ability to manage wiki"),
|
|
),
|
|
(
|
|
name = "user",
|
|
title = (defaultText = "user"),
|
|
description = (defaultText = "grants ability to edit wiki"),
|
|
),
|
|
],
|
|
roles = [
|
|
(
|
|
title = (defaultText = "administrator"),
|
|
permissions = [true, true, true],
|
|
verbPhrase = (defaultText = "can administer the wiki"),
|
|
description = (defaultText = "administrators have full access to the wiki's data and settings."),
|
|
),
|
|
(
|
|
title = (defaultText = "manager"),
|
|
permissions = [false, true, true],
|
|
verbPhrase = (defaultText = "can manage the wiki"),
|
|
description = (defaultText = "Managers can manage the wiki."),
|
|
),
|
|
(
|
|
title = (defaultText = "user"),
|
|
permissions = [false, false, true],
|
|
verbPhrase = (defaultText = "can edit the wiki"),
|
|
description = (defaultText = "Users can edit the wiki."),
|
|
),
|
|
(
|
|
title = (defaultText = "viewer"),
|
|
permissions = [false, false, false],
|
|
verbPhrase = (defaultText = "can view the wiki"),
|
|
description = (defaultText = "Viewers can view the wiki."),
|
|
),
|
|
],
|
|
),
|
|
# #apiPath = "/api",
|
|
# # Apps can export an API to the world. The API is to be used primarily by Javascript
|
|
# # code and native apps, so it can't serve out regular HTML to browsers. If a request
|
|
# # comes in to your app's API, sandstorm-http-bridge will prefix the request's path with
|
|
# # this string, if specified.
|
|
),
|
|
);
|
|
|
|
const myCommand :Spk.Manifest.Command = (
|
|
# Here we define the command used to start up your server.
|
|
argv = ["/sandstorm-http-bridge", "8000", "--", "/opt/app/.sandstorm/launcher.sh"],
|
|
environ = [
|
|
# Note that this defines the *entire* environment seen by your app.
|
|
(key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),
|
|
(key = "SANDSTORM", value = "1"),
|
|
# Export SANDSTORM=1 into the environment, so that apps running within Sandstorm
|
|
# can detect if $SANDSTORM="1" at runtime, switching UI and/or backend to use
|
|
# the app's Sandstorm-specific integration code.
|
|
]
|
|
);
|