File: manifest.proto

package info (click to toggle)
continuity 0.0~git20180216.d8fb858-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 620 kB
  • sloc: makefile: 46; sh: 28; asm: 3
file content (97 lines) | stat: -rw-r--r-- 3,547 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
syntax = "proto3";

package proto;

// Manifest specifies the entries in a container bundle, keyed and sorted by
// path.
message Manifest {
    repeated Resource resource = 1;
}

message Resource {
    // Path specifies the path from the bundle root. If more than one
    // path is present, the entry may represent a hardlink, rather than using
    // a link target. The path format is operating system specific.
    repeated string path = 1;

    // NOTE(stevvooe): Need to define clear precedence for user/group/uid/gid precedence.

    // Uid specifies the user id for the resource.
    int64 uid = 2;

    // Gid specifies the group id for the resource.
    int64 gid = 3;

    // user and group are not currently used but their field numbers have been
    // reserved for future use. As such, they are marked as deprecated.
    string user = 4 [deprecated=true]; // "deprecated" stands for "reserved" here
    string group = 5 [deprecated=true]; // "deprecated" stands for "reserved" here

    // Mode defines the file mode and permissions. We've used the same
    // bit-packing from Go's os package,
    // http://golang.org/pkg/os/#FileMode, since they've done the work of
    // creating a cross-platform layout.
    uint32 mode = 6;

    // NOTE(stevvooe): Beyond here, we start defining type specific fields.

    // Size specifies the size in bytes of the resource. This is only valid
    // for regular files.
    uint64 size = 7;

    // Digest specifies the content digest of the target file. Only valid for
    // regular files. The strings are formatted in OCI style, i.e. <alg>:<encoded>.
    // For detailed information about the format, please refer to OCI Image Spec:
    // https://github.com/opencontainers/image-spec/blob/master/descriptor.md#digests-and-verification
    // The digests are sorted in lexical order and implementations may choose
    // which algorithms they prefer.
    repeated string digest = 8;

    // Target defines the target of a hard or soft link. Absolute links start
    // with a slash and specify the resource relative to the bundle root.
    // Relative links do not start with a slash and are relative to the
    // resource path.
    string target = 9;

    // Major specifies the major device number for character and block devices.
    uint64 major = 10;

    // Minor specifies the minor device number for character and block devices.
    uint64 minor = 11;

    // Xattr provides storage for extended attributes for the target resource.
    repeated XAttr xattr = 12;

    // Ads stores one or more alternate data streams for the target resource.
    repeated ADSEntry ads = 13;

}

// XAttr encodes extended attributes for a resource.
message XAttr {
    // Name specifies the attribute name.
    string name = 1;

    // Data specifies the associated data for the attribute.
    bytes data = 2;
}

// ADSEntry encodes information for a Windows Alternate Data Stream.
message ADSEntry {
    // Name specifices the stream name.
    string name = 1;

    // Data specifies the stream data.
    // See also the description about the digest below.
    bytes data = 2;

    // Digest is a CAS representation of the stream data.
    //
    // At least one of data or digest MUST be specified, and either one of them
    // SHOULD be specified.
    //
    // How to access the actual data using the digest is implementation-specific,
    // and implementations can choose not to implement digest.
    // So, digest SHOULD be used only when the stream data is large.
    string digest = 3;
}