- Activities
- Alarms
- Audit
- Buckets
- Clearance
- Commands
- COP-1
- Database
- Events
- File Transfer
- IAM
- Indexes
- Instances
- Links
- MDB Override
- MDB
- Get Mission Database
- Export Java Mission Database
- List Space Systems
- Get Space System
- Export Xtce
- Stream Mission Database
- List Parameters
- Get Parameter
- Create Parameter
- Batch Get Parameters
- List Parameter Types
- Get Parameter Type
- Create Parameter Type
- List Containers
- Get Container
- List Commands
- Get Command
- List Algorithms
- Get Algorithm
- Packets
- Parameter Archive
- Parameter Lists
- Parameter Values
- Processing
- Queues
- Replication
- RocksDB
- Server
- Services
- Sessions
- Stream Archive
- Table
- Time Correlation
- Time
- Timeline
Yamcs Release Notes
Yamcs Server Manual
Source Code Documentation
Stream Mission DatabaseΒΆ
Stream Mission Database items.
This operation is intended for tools that need to efficiently fetch the full list of parameters or commands, without using repeated pagination-based requests.
Warning
This method uses server-streaming. Yamcs sends an unspecified amount of data using chunked transfer encoding.
URI Template
GET /api/mdb/{instance}:streamMissionDatabase
{instance}
Yamcs instance name.
Query Parameters
includeSpaceSystems
Stream space systems. Default:
true
includeContainers
Stream containers. Default:
true
includeParameters
Stream parameters. Default:
true
includeParameterTypes
Stream parameter types. Default:
true
includeCommands
Stream commands. Default:
true
includeAlgorithms
Stream algorithms. Default:
true
Response Type
interface MissionDatabaseItem {
// A space system
spaceSystem: SpaceSystemInfo;
// A container
container: ContainerInfo;
// A parameter
parameter: ParameterInfo;
// A parameter type
parameterType: ParameterTypeInfo;
// A command
command: CommandInfo;
// An algorithm
algorithm: AlgorithmInfo;
}
Related Types
interface SpaceSystemInfo {
// Space system name
name: string;
qualifiedName: string;
// Short description (one line)
shortDescription: string;
// Long description (Markdown)
longDescription: string;
alias: NamedObjectId[];
version: string;
history: HistoryInfo[];
sub: SpaceSystemInfo[];
ancillaryData: {[key: string]: AncillaryDataInfo};
}
// Used by external clients to identify an item in the Mission Database
// If namespace is set, then the name is that of an alias, rather than
// the qualified name.
interface NamedObjectId {
name: string;
namespace: string;
}
interface HistoryInfo {
version: string;
date: string;
message: string;
author: string;
}
interface ContainerInfo {
name: string;
qualifiedName: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
maxInterval: string; // String decimal
sizeInBits: number;
baseContainer: ContainerInfo;
restrictionCriteria: ComparisonInfo[];
restrictionCriteriaExpression: string;
entry: SequenceEntryInfo[];
usedBy: UsedByInfo;
ancillaryData: {[key: string]: AncillaryDataInfo};
archivePartition: boolean;
}
interface ComparisonInfo {
parameter: ParameterInfo;
operator: OperatorType;
value: string;
argument: ArgumentInfo;
}
interface ParameterInfo {
name: string;
qualifiedName: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
type: ParameterTypeInfo;
dataSource: DataSourceType;
usedBy: UsedByInfo;
ancillaryData: {[key: string]: AncillaryDataInfo};
// Operations that return aggregate members or array entries
// may use this field to indicate the path within the parameter.
path: string[];
}
interface ParameterTypeInfo {
name: string;
qualifiedName: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
// Engineering type
engType: string;
dataEncoding: DataEncodingInfo;
unitSet: UnitInfo[];
// Default Alarm, effective when no contextual alarm takes precedence.
defaultAlarm: AlarmInfo;
enumValue: EnumValue[];
absoluteTimeInfo: AbsoluteTimeInfo;
// Contextual alarms
contextAlarm: ContextAlarmInfo[];
member: MemberInfo[];
arrayInfo: ArrayInfo;
ancillaryData: {[key: string]: AncillaryDataInfo};
// Provides hints on how to format the engineering
// value as a string.
numberFormat: NumberFormatTypeInfo;
// True if the engineering type supports signed representation.
// (only used by integer parameter types)
signed: boolean;
// Hint about the range of allowed engineering values
sizeInBits: number;
// String representation of a boolean zero (only used by boolean types)
zeroStringValue: string;
// String representation of a boolean one (only used by boolean types)
oneStringValue: string;
// Which parameters this type is used by. This field is only
// populated when requesting directly a single parameter type.
usedBy: ParameterInfo[];
}
interface DataEncodingInfo {
type: Type;
littleEndian: boolean;
sizeInBits: number;
encoding: string;
defaultCalibrator: CalibratorInfo;
// Deprecated, use ``contextCalibrators`` instead
contextCalibrator: ContextCalibratorInfo[];
contextCalibrators: ContextCalibratorInfo[];
}
interface CalibratorInfo {
polynomialCalibrator: PolynomialCalibratorInfo;
splineCalibrator: SplineCalibratorInfo;
javaExpressionCalibrator: JavaExpressionCalibratorInfo;
type: Type;
}
interface PolynomialCalibratorInfo {
// Deprecated, use ``coefficients`` instead
coefficient: number[];
coefficients: number[];
}
interface SplineCalibratorInfo {
// Deprecated, use ``points`` instead
point: SplinePointInfo[];
points: SplinePointInfo[];
}
interface SplinePointInfo {
raw: number;
calibrated: number;
}
interface JavaExpressionCalibratorInfo {
formula: string;
}
interface ContextCalibratorInfo {
comparison: ComparisonInfo[];
calibrator: CalibratorInfo;
// This can be used in UpdateParameterRequest to pass a context
// that is parsed on the server, according to the rules in the
// excel spreadsheet. Either this or a comparison has to be
// used (not both at the same time)
context: string;
}
interface UnitInfo {
unit: string;
}
interface AlarmInfo {
minViolations: number;
// Deprecated, use ``staticAlarmRanges`` instead
staticAlarmRange: AlarmRange[];
staticAlarmRanges: AlarmRange[];
// Deprecated, use ``enumerationAlarms`` instead
enumerationAlarm: EnumerationAlarm[];
enumerationAlarms: EnumerationAlarm[];
}
interface AlarmRange {
level: AlarmLevelType;
minInclusive: number;
maxInclusive: number;
minExclusive: number;
maxExclusive: number;
}
interface EnumerationAlarm {
level: AlarmLevelType;
label: string;
}
interface EnumValue {
value: string; // String decimal
label: string;
description: string;
}
interface AbsoluteTimeInfo {
initialValue: string;
scale: number;
offset: number;
offsetFrom: ParameterInfo;
epoch: string;
}
interface ContextAlarmInfo {
comparison: ComparisonInfo[];
alarm: AlarmInfo;
// This can be used in UpdateParameterRequest to pass a context
// that is parsed on the server, according to the rules in the
// excel spreadsheet. Either this or a comparison has to be
// used (not both at the same time)
context: string;
}
interface MemberInfo {
name: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
type: ParameterTypeInfo;
}
interface ArrayInfo {
type: ParameterTypeInfo;
dimensions: ParameterDimensionInfo[];
}
interface ParameterDimensionInfo {
fixedValue: string; // String decimal
parameter: ParameterInfo;
slope: string; // String decimal
intercept: string; // String decimal
}
interface NumberFormatTypeInfo {
numberBase: string;
minimumFractionDigits: number;
maximumFractionDigits: number;
minimumIntegerDigits: number;
maximumIntegerDigits: number;
negativeSuffix: string;
positiveSuffix: string;
negativePrefix: string;
positivePrefix: string;
showThousandsGrouping: boolean;
notation: string;
}
interface UsedByInfo {
algorithm: AlgorithmInfo[];
container: ContainerInfo[];
}
interface AlgorithmInfo {
// Algorithm name
name: string;
qualifiedName: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
scope: Scope;
// Type of algorithm
type: Type;
// Language if this is a custom algorithm
language: string;
// Code if this is a custom algorithm
text: string;
inputParameter: InputParameterInfo[];
outputParameter: OutputParameterInfo[];
onParameterUpdate: ParameterInfo[];
onPeriodicRate: string[]; // String decimal
// Operands and operators in Reverse Polish Notation if type ``MATH``.
mathElements: MathElement[];
}
interface InputParameterInfo {
parameter: ParameterInfo;
inputName: string;
parameterInstance: number;
mandatory: boolean;
argument: ArgumentInfo;
}
interface ArgumentInfo {
name: string;
description: string;
initialValue: string;
type: ArgumentTypeInfo;
}
interface ArgumentTypeInfo {
engType: string;
dataEncoding: DataEncodingInfo;
unitSet: UnitInfo[];
// Enumeration states (only used by enumerated arguments)
enumValue: EnumValue[];
// Minimum value (only used by integer and float arguments)
rangeMin: number;
// Maximum value (only used by integer and float arguments)
rangeMax: number;
// Member information (only used by aggregate arguments)
member: ArgumentMemberInfo[];
// String representation of a boolean zero (only used by boolean arguments)
zeroStringValue: string;
// String representation of a boolean one (only used by boolean arguments)
oneStringValue: string;
// Minimum character count (only used by string arguments)
minChars: number;
// Maximum character count (only used by string arguments)
maxChars: number;
// True if the engineering type supports signed representation.
// (only used by integer arguments)
signed: boolean;
// Minimum byte count (only used by binary arguments)
minBytes: number;
// Maximum character count (only used by binary arguments)
maxBytes: number;
// Length of each dimension (only used by array arguments)
dimensions: ArgumentDimensionInfo[];
// Type of array entries (only used by array arguments)
elementType: ArgumentTypeInfo;
// Name of the parameter type
name: string;
}
interface ArgumentMemberInfo {
name: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
type: ArgumentTypeInfo;
initialValue: string;
}
interface ArgumentDimensionInfo {
// Use a fixed integer value. If set, no other options are applicable.
// This value describes the length.
fixedValue: string; // String decimal
// Use the value of the referenced parameter.
// The value describes the zero-based ending index (length - 1)
//
// For a value ``v``, the dimension's length is determined
// as: ``(v * slope) + intercept``.
parameter: ParameterInfo;
// Use the value of the referenced argument.
// The value describes the zero-based ending index (length - 1)
//
// For a value ``v``, the dimension's length is determined
// as: ``(v * slope) + intercept``.
argument: string;
// Scale the value obtained from a parameter or argument reference.
slope: string; // String decimal
// Shift the value obtained from a parameter or argument reference.
intercept: string; // String decimal
}
interface OutputParameterInfo {
parameter: ParameterInfo;
outputName: string;
}
interface MathElement {
// Type of element, either an operand kind or an operator.
type: Type;
// Operator symbol if type ``OPERATOR``.
operator: string;
// Constant if type ``VALUE_OPERAND``.
value: number;
// Parameter whose value is used if type ``PARAMETER``.
parameter: ParameterInfo;
// Parameter instance specifier
parameterInstance: number;
}
interface SequenceEntryInfo {
locationInBits: number;
referenceLocation: ReferenceLocationType;
// For use in sequence containers
container: ContainerInfo;
parameter: ParameterInfo;
// For use in command containers
argument: ArgumentInfo;
fixedValue: FixedValueInfo;
repeat: RepeatInfo;
indirectParameterRef: IndirectParameterRefInfo;
}
interface FixedValueInfo {
name: string;
hexValue: string;
sizeInBits: number;
}
interface RepeatInfo {
fixedCount: string; // String decimal
dynamicCount: ParameterInfo;
bitsBetween: number;
}
interface IndirectParameterRefInfo {
parameter: ParameterInfo;
aliasNamespace: string;
}
interface CommandInfo {
name: string;
qualifiedName: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
baseCommand: CommandInfo;
abstract: boolean;
argument: ArgumentInfo[];
argumentAssignment: ArgumentAssignmentInfo[];
// Command significance.
//
// This is the significance defined specifically for this command.
// If unset, there may still be a significance inherited from
// a base command.
significance: SignificanceInfo;
constraint: TransmissionConstraintInfo[];
commandContainer: CommandContainerInfo;
verifier: VerifierInfo[];
ancillaryData: {[key: string]: AncillaryDataInfo};
// Effective command significance.
//
// This is the significance obtained by looking up the first defined
// significance either in this command, or the nearest base command.
effectiveSignificance: SignificanceInfo;
}
interface ArgumentAssignmentInfo {
name: string;
value: string;
}
interface SignificanceInfo {
consequenceLevel: SignificanceLevelType;
reasonForWarning: string;
}
interface TransmissionConstraintInfo {
expression: string;
timeout: string; // String decimal
}
interface CommandContainerInfo {
name: string;
qualifiedName: string;
shortDescription: string;
longDescription: string;
alias: NamedObjectId[];
sizeInBits: number;
baseContainer: CommandContainerInfo;
entry: SequenceEntryInfo[];
}
interface VerifierInfo {
stage: string;
// Container update that is checked
container: ContainerInfo;
algorithm: AlgorithmInfo;
// What action to take when a check succeeds
onSuccess: TerminationActionType;
// What action to take when a check fails
onFail: TerminationActionType;
// What action to take when a check times out
onTimeout: TerminationActionType;
// Time window during which a check is executed
checkWindow: CheckWindowInfo;
// Expression used to check this verifier
expression: string;
}
interface CheckWindowInfo {
// Delay in milliseconds before starting to check
timeToStartChecking: string; // String decimal
// Duration in milliseconds of the check window
timeToStopChecking: string; // String decimal
// Reference time for starting the check window
relativeTo: string;
}
enum Type {
BINARY = "BINARY",
BOOLEAN = "BOOLEAN",
FLOAT = "FLOAT",
INTEGER = "INTEGER",
STRING = "STRING",
}
enum Type {
POLYNOMIAL = "POLYNOMIAL",
SPLINE = "SPLINE",
MATH_OPERATION = "MATH_OPERATION",
JAVA_EXPRESSION = "JAVA_EXPRESSION",
}
enum AlarmLevelType {
NORMAL = "NORMAL",
WATCH = "WATCH",
WARNING = "WARNING",
DISTRESS = "DISTRESS",
CRITICAL = "CRITICAL",
SEVERE = "SEVERE",
}
enum AlarmLevelType {
NORMAL = "NORMAL",
WATCH = "WATCH",
WARNING = "WARNING",
DISTRESS = "DISTRESS",
CRITICAL = "CRITICAL",
SEVERE = "SEVERE",
}
enum DataSourceType {
TELEMETERED = "TELEMETERED",
DERIVED = "DERIVED",
CONSTANT = "CONSTANT",
LOCAL = "LOCAL",
SYSTEM = "SYSTEM",
COMMAND = "COMMAND",
COMMAND_HISTORY = "COMMAND_HISTORY",
EXTERNAL1 = "EXTERNAL1",
EXTERNAL2 = "EXTERNAL2",
EXTERNAL3 = "EXTERNAL3",
GROUND = "GROUND",
}
enum Scope {
GLOBAL = "GLOBAL",
COMMAND_VERIFICATION = "COMMAND_VERIFICATION",
CONTAINER_PROCESSING = "CONTAINER_PROCESSING",
}
enum Type {
CUSTOM = "CUSTOM",
MATH = "MATH",
}
enum Type {
VALUE_OPERAND = "VALUE_OPERAND",
THIS_PARAMETER_OPERAND = "THIS_PARAMETER_OPERAND",
OPERATOR = "OPERATOR",
PARAMETER = "PARAMETER",
}
enum OperatorType {
EQUAL_TO = "EQUAL_TO",
NOT_EQUAL_TO = "NOT_EQUAL_TO",
GREATER_THAN = "GREATER_THAN",
GREATER_THAN_OR_EQUAL_TO = "GREATER_THAN_OR_EQUAL_TO",
SMALLER_THAN = "SMALLER_THAN",
SMALLER_THAN_OR_EQUAL_TO = "SMALLER_THAN_OR_EQUAL_TO",
}
enum ReferenceLocationType {
CONTAINER_START = "CONTAINER_START",
PREVIOUS_ENTRY = "PREVIOUS_ENTRY",
}
enum SignificanceLevelType {
NONE = "NONE",
WATCH = "WATCH",
WARNING = "WARNING",
DISTRESS = "DISTRESS",
CRITICAL = "CRITICAL",
SEVERE = "SEVERE",
}
enum TerminationActionType {
SUCCESS = "SUCCESS",
FAIL = "FAIL",
}