# Artifacts

Manage artifacts through sfp server

* [`sfp server artifacts promote`](#sfp-server-artifacts-promote)
* [`sfp server artifacts publish`](#sfp-server-artifacts-publish)

## `sfp server artifacts promote`

Promote unlocked packages with metadata publishing to SFP Server (experimental)

```
USAGE
  $ sfp server artifacts promote -v <value> -d <value> [--json] [--repository <value>] [-e <value>] [-t <value>]
    [--sfp-server-url <value>] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

FLAGS
  -d, --artifactdir=<value>           (required) [default: artifacts] The directory where artifacts are located
  -e, --email=<value>                 [env: SFP_SERVER_USER] Email address for authenticated user. Ignored if
                                      --application-token is provided.
  -t, --application-token=<value>     [env: SFP_SERVER_TOKEN] Application token for CI/CD authentication. Takes
                                      precedence over --email.
  -v, --targetdevhubusername=<value>  (required) Username or alias of the Dev Hub org.
      --loglevel=<option>             [default: info] logging level for this command invocation
                                      <options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
      --repository=<value>            The repository identifier. E.g `owner/repo`
      --sfp-server-url=<value>        [env: SFP_SERVER_URL] URL of the SFP server. Can be set via environment variable
                                      `SFP_SERVER_URL` or config: sfp config:set server-url

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Promote unlocked packages with metadata publishing to SFP Server (experimental)

EXAMPLES
  $ sfp server artifacts promote -d path/to/artifacts -v <org> --email user@example.com

  $ sfp server artifacts promote -d path/to/artifacts -v <org> --application-token myToken
```

*See code:* [*src/commands/server/artifacts/promote.ts*](https://source.flxbl.io/flxbl/sfp-pro)

## `sfp server artifacts publish`

Publish artifacts to npm registry with enhanced CI/CD support (experimental)

```
USAGE
  $ sfp server artifacts publish -d <value> [--json] [--repository <value>] [-e <value>] [-t <value>] [--sfp-server-url
    <value>] [-p -v <value>] [-t <value>] [--gittag] [--gittaglimit <value>] [--gittagage <value>] [--pushgittag]
    [--scope <value> [--npm | -f <value>]] [--npmtag <value> ] [--npmrcpath <value> ] [-g <value>...] [--loglevel
    trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [--npmauthtoken <value>] [--provider
    github|gitlab|npm ]

FLAGS
  -d, --artifactdir=<value>         (required) [default: artifacts] The directory containing artifacts to be published
  -e, --email=<value>               [env: SFP_SERVER_USER] Email address for authenticated user. Ignored if
                                    --application-token is provided.
  -f, --scriptpath=<value>          Path to script that authenticates and uploaded artifacts to the registry
  -g, --logsgroupsymbol=<value>...  Symbol used by CICD platform to group/collapse logs in the console. Provide an
                                    opening group, and an optional closing group symbol.
  -p, --publishpromotedonly         Only publish unlocked packages that have been promoted
  -t, --application-token=<value>   [env: SFP_SERVER_TOKEN] Application token for CI/CD authentication. Takes precedence
                                    over --email.
  -t, --tag=<value>                 Tag the publish with a label, useful for identification in metrics
  -v, --devhubalias=<value>         Username or alias of the Dev Hub org.
      --gittag                      Tag the current commit ID with an annotated tag containing the package name and
                                    version - does not push tag
      --gittagage=<value>           Specifies the number of days,for a tag to be retained,any tags older the provided
                                    number will be deleted
      --gittaglimit=<value>         Specifies the minimum number of  tags to be retained for a package
      --loglevel=<option>           [default: info] logging level for this command invocation
                                    <options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
      --npm                         Upload artifacts to a pre-authenticated private npm registry
      --npmauthtoken=<value>        [env: NPM_AUTH_TOKEN] NPM auth token for package registry. Defaults to GITHUB_TOKEN
                                    in GitHub Actions, CI_JOB_TOKEN in GitLab CI, or NPM_TOKEN
      --npmrcpath=<value>           Path to .npmrc file used for authentication to registry. If left blank, defaults to
                                    home directory
      --npmtag=<value>              Add an optional distribution tag to NPM packages. If not provided, the 'latest' tag
                                    is set to the published version.
      --provider=<option>           [default: npm] Registry provider (github, gitlab, npm)
                                    <options: github|gitlab|npm>
      --pushgittag                  Pushes the git tags created by this command to the repo, ensure you have access to
                                    the repo
      --repository=<value>          The repository identifier. E.g `owner/repo`
      --scope=<value>               (required for NPM) User or Organisation scope of the NPM package
      --sfp-server-url=<value>      [env: SFP_SERVER_URL] URL of the SFP server. Can be set via environment variable
                                    `SFP_SERVER_URL` or config: sfp config:set server-url

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Publish artifacts to npm registry with enhanced CI/CD support (experimental)

EXAMPLES
  $ sfp server artifacts publish --npm --email user@example.com

  $ sfp server artifacts publish --npm --application-token myToken
```

*See code:* [*src/commands/server/artifacts/publish.ts*](https://source.flxbl.io/flxbl/sfp-pro)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flxbl.io/flxbl/sfp/sfp-community/cli-reference-v50-and-below/server/artifacts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
